def get_running_emulators(cls): running = [] for platform, sdks in get_all_emulator_info().items(): for sdk in sdks: if ManagedEmulatorTransport.is_emulator_alive(platform, sdk): running.append((platform, sdk)) return running
def __call__(self, args): super(KillCommand, self).__call__(args) if args.force: s = signal.SIGKILL else: s = signal.SIGTERM info = emulator.get_all_emulator_info() for platform in info.values(): for version in platform.values(): self._kill_if_running(version['qemu']['pid'], s) self._kill_if_running(version['pypkjs']['pid'], s)
def _connect(self, args): self._set_debugging(args.v) if getattr(args, 'phone', None): return self._connect_phone(args.phone) elif getattr(args, 'qemu', None): return self._connect_qemu(args.qemu) elif getattr(args, 'emulator', None): return self._connect_emulator(args.emulator, args.sdk) elif getattr(args, 'cloudpebble', None): return self._connect_cloudpebble() elif getattr(args, 'serial', None): return self._connect_serial(args.serial) else: if 'phone' in self.valid_connections and 'PEBBLE_PHONE' in os.environ: return self._connect_phone(os.environ['PEBBLE_PHONE']) elif 'qemu' in self.valid_connections and 'PEBBLE_QEMU' in os.environ: return self._connect_qemu(os.environ['PEBBLE_QEMU']) elif 'cloudpebble' in self.valid_connections and os.environ.get('PEBBLE_CLOUDPEBBLE', False): return self._connect_cloudpebble() elif 'serial' in self.valid_connections and 'PEBBLE_BT_SERIAL' in os.environ: return self._connect_serial(os.environ['PEBBLE_BT_SERIAL']) elif 'emulator' in self.valid_connections: running = [] emulator_platform = None emulator_sdk = None if 'PEBBLE_EMULATOR' in os.environ: emulator_platform = os.environ['PEBBLE_EMULATOR'] if emulator_platform not in pebble_platforms: raise ToolError("PEBBLE_EMULATOR is set to '{}', which is not a valid platform " "(pick from {})".format(emulator_platform, ', '.join(pebble_platforms))) emulator_sdk = os.environ.get('PEBBLE_EMULATOR_VERSION', sdk_version()) else: for platform, sdks in get_all_emulator_info().items(): for sdk in sdks: if ManagedEmulatorTransport.is_emulator_alive(platform, sdk): running.append((platform, sdk)) if len(running) == 1: emulator_platform, emulator_sdk = running[0] elif len(running) > 1: raise ToolError("Multiple emulators are running; you must specify which to use.") if emulator_platform is not None: return self._connect_emulator(emulator_platform, emulator_sdk) raise ToolError("No pebble connection specified.")