diff options
Diffstat (limited to 'cordova/lib/list-started-emulators')
| -rwxr-xr-x | cordova/lib/list-started-emulators | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/cordova/lib/list-started-emulators b/cordova/lib/list-started-emulators new file mode 100755 index 0000000..710fa2f --- /dev/null +++ b/cordova/lib/list-started-emulators @@ -0,0 +1,50 @@ +#!/usr/bin/env node + +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +*/ + + +var Q = require('q'), + exec = require('child_process').exec; + +/** + * Gets list of running iOS simulators + * @return {Promise} Promise fulfilled with list of running iOS simulators + */ +function listStartedEmulators () { + // wrap exec call into promise + return Q.nfcall(exec, 'ps aux | grep -i "[i]OS Simulator"') + .then(function () { + return Q.nfcall(exec, 'defaults read com.apple.iphonesimulator "SimulateDevice"'); + }).then(function (stdio) { + return stdio[0].trim().split('\n'); + }); +} + +exports.run = listStartedEmulators; + +// Check if module is started as separate script. +// If so, then invoke main method and print out results. +if (!module.parent) { + listStartedEmulators().then(function (emulators) { + emulators.forEach(function (emulator) { + console.log(emulator); + }); + }); +} |
