Example #1
0
    def full(self):
        if self.script:
            self.log.info('opening script in new window...')
            launch('osascript', '-e', SCRIPT_LAUNCH.format(command=self.prime))
            return True

        code, _, err = launch('open', '-a', self.prime)
        if code == 0:
            return True
        self.log.error('could not start: {}', ' '.join(err))
        return False
Example #2
0
 def null(self):
     flag = '-if' if self.script else '-ix'
     code, _, _ = launch('pgrep', flag, self.prime)
     if code != 0:
         self.log.debug('{} is not running', self.prime)
         return True
     code, _, _ = launch('pkill', flag, self.prime)
     if code == 0:
         return True
     self.log.error('{} could not be killed', self.prime)
     return False
Example #3
0
 def do_fire(self, lift=True):
     for _, (_, out, err) in launch_repeat(
             'osascript',
             '-e',
             SCRIPT_ACTION.format(
                 device=self.prime,
                 desired=('Connect' if lift else 'Disconnect'),
                 already=('Disconnect' if lift else 'Connect'),
             ),
             times=2,
             patience=self.delay,
     ):
         launch('osascript', '-e', SCRIPT_ESCAPE)
         if err:
             self.log.debug('bluetooth says: {}', ' '.join(err))
         if ''.join(out) == 'success':
             return True
     return False
Example #4
0
    def _fetch_password(self):
        code, _, err = launch('security',
                              'find-generic-password',
                              '-ga',
                              self.prime,
                              e_hide=True)
        if code == 0:
            _, _, passwd = err[-1].rpartition(': "')
            return passwd.rstrip('"')

        self.log.error('disk password failed: {}', ' '.join(err))
        return False
Example #5
0
 def _disk_unlock(self, uuid, passwd):
     code, _, err = launch('diskutil',
                           'corestorage',
                           'unlockvolume',
                           uuid,
                           '-stdinpassphrase',
                           stdin=passwd)
     if code == 0:
         return True
     if err and 'already unlocked and is attached' in err[0]:
         self.log.info('disk {} was already unlocked', self.prime)
         return True
     self.log.error('disk unlock failed', ' '.join(err))
     return False
Example #6
0
 def _disk_mount(self, node):
     code, _, err = launch('diskutil', 'mount', node)
     if code == 0:
         return True
     self.log.error('disk mount failed: {}', ' '.join(err))
     return False
Example #7
0
 def _disk_info(self):
     code, out, _ = launch('diskutil', 'info', self.prime)
     if code != 0:
         self.log.warning('disk unknown: {}', ' '.join(out))
     return dict((k.strip(), v.strip())
                 for k, v in [ln.split(':') for ln in out if ln])
Example #8
0
 def wrap(prime):
     code, _, err = launch(*command)
     if code == 0:
         return True
     LOG.error('command {} failed: {}', prime, ' '.join(err))