aboutsummaryrefslogtreecommitdiff
path: root/cordova/node_modules/simctl/lib/simctl-extensions.js
diff options
context:
space:
mode:
authorKumar Priyansh <[email protected]>2019-01-19 12:37:14 +0530
committerKumar Priyansh <[email protected]>2019-01-19 12:37:14 +0530
commitdcdfc94cb39dfe2c39925a0145ffa45e2d061c30 (patch)
tree4f6379d955555b298c0e7b83a67e264240ee5614 /cordova/node_modules/simctl/lib/simctl-extensions.js
parent76f7b3678d3f1ff99c3935a774d420453b0c3cb9 (diff)
downloadWeatherApp-dcdfc94cb39dfe2c39925a0145ffa45e2d061c30.tar.xz
WeatherApp-dcdfc94cb39dfe2c39925a0145ffa45e2d061c30.zip
Initial Upload via GIT
Diffstat (limited to 'cordova/node_modules/simctl/lib/simctl-extensions.js')
-rwxr-xr-xcordova/node_modules/simctl/lib/simctl-extensions.js91
1 files changed, 91 insertions, 0 deletions
diff --git a/cordova/node_modules/simctl/lib/simctl-extensions.js b/cordova/node_modules/simctl/lib/simctl-extensions.js
new file mode 100755
index 0000000..f13f111
--- /dev/null
+++ b/cordova/node_modules/simctl/lib/simctl-extensions.js
@@ -0,0 +1,91 @@
+/*
+The MIT License (MIT)
+
+Copyright (c) 2014 Shazron Abdullah.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
+
+var shell = require('shelljs'),
+ path = require('path'),
+ fs = require('fs'),
+ util = require('util'),
+ Tail = require('tail').Tail;
+
+var extensions = {
+ start: function(deviceid) {
+ var is_at_least_xcode_9 = false;
+
+ var command = 'killall Simulator';
+ shell.exec(command, { silent: true });
+
+ command = 'xcodebuild -version';
+ var output = shell.exec(command, { silent: true }).output;
+
+ // parse output for Xcode version
+ var versionMatch = /Xcode (.*)/.exec(output);
+ if (!versionMatch) {
+ console.log('Unable to parse xcodebuild version.');
+ return;
+ } else {
+ is_at_least_xcode_9 = (parseInt(versionMatch[1]) >= 9);
+ }
+
+ if (is_at_least_xcode_9) {
+ // Xcode 9 or greater
+ command = util.format('xcrun simctl boot "%s"', deviceid);
+ shell.exec(command, { silent: true });
+ command = 'open `xcode-select -p`/Applications/Simulator.app';
+ return shell.exec(command, { silent: true });
+ } else {
+ // Xcode 8 or older
+ command = util.format('xcrun simctl shutdown booted');
+ shell.exec(command, { silent: true });
+ command = util.format('xcrun instruments -w "%s"', deviceid);
+ return shell.exec(command, { silent: true });
+ }
+ },
+
+ log: function(deviceid, filepath) {
+ var tail = new Tail(
+ path.join(process.env.HOME, 'Library/Logs/CoreSimulator', deviceid, 'system.log')
+ );
+
+ tail.on('line', function(data) {
+ if (filepath) {
+ fs.appendFile(filepath, data + '\n', function(error) {
+ if (error) {
+ console.error('ERROR: ', error);
+ throw error;
+ }
+ });
+ } else {
+ console.log(data);
+ }
+ });
+
+ tail.on('error', function(error) {
+ console.error('ERROR: ', error);
+ });
+
+ return tail;
+ }
+};
+
+exports = module.exports = extensions;