mobile-cli-lib
Version:
common lib used by different CLI
67 lines (66 loc) • 2.83 kB
JavaScript
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var device_discovery_1 = require("./device-discovery");
var Future = require("fibers/future");
var ios_simulator_device_1 = require("./../ios/simulator/ios-simulator-device");
var IOSSimulatorDiscovery = (function (_super) {
__extends(IOSSimulatorDiscovery, _super);
function IOSSimulatorDiscovery($injector, $childProcess, $iOSSimResolver, $hostInfo) {
_super.call(this);
this.$injector = $injector;
this.$childProcess = $childProcess;
this.$iOSSimResolver = $iOSSimResolver;
this.$hostInfo = $hostInfo;
}
IOSSimulatorDiscovery.prototype.startLookingForDevices = function () {
return this.checkForDevices(new Future());
};
IOSSimulatorDiscovery.prototype.checkForDevices = function (future) {
if (this.$hostInfo.isDarwin) {
var currentSimulator = null;
if (this.isSimulatorRunning().wait()) {
currentSimulator = this.$iOSSimResolver.iOSSim.getRunningSimulator();
}
if (currentSimulator) {
if (!this.cachedSimulator) {
this.createAndAddDevice(currentSimulator);
}
else if (this.cachedSimulator.id !== currentSimulator.id) {
this.removeDevice(this.cachedSimulator.id);
this.createAndAddDevice(currentSimulator);
}
}
else if (this.cachedSimulator) {
this.removeDevice(this.cachedSimulator.id);
this.cachedSimulator = null;
}
}
if (future) {
future.return();
}
return future || Future.fromResult();
};
IOSSimulatorDiscovery.prototype.isSimulatorRunning = function () {
var _this = this;
return (function () {
try {
var output = _this.$childProcess.exec("ps cax | grep launchd_sim").wait();
return output.indexOf('launchd_sim') !== -1;
}
catch (e) {
return false;
}
}).future()();
};
IOSSimulatorDiscovery.prototype.createAndAddDevice = function (simulator) {
this.cachedSimulator = _.cloneDeep(simulator);
this.addDevice(this.$injector.resolve(ios_simulator_device_1.IOSSimulator, { simulator: this.cachedSimulator }));
};
return IOSSimulatorDiscovery;
}(device_discovery_1.DeviceDiscovery));
exports.IOSSimulatorDiscovery = IOSSimulatorDiscovery;
$injector.register("iOSSimulatorDiscovery", IOSSimulatorDiscovery);