diff options
| author | Kumar Priyansh <[email protected]> | 2019-01-19 12:37:14 +0530 |
|---|---|---|
| committer | Kumar Priyansh <[email protected]> | 2019-01-19 12:37:14 +0530 |
| commit | dcdfc94cb39dfe2c39925a0145ffa45e2d061c30 (patch) | |
| tree | 4f6379d955555b298c0e7b83a67e264240ee5614 /cordova/node_modules/simctl/lib/simctl-extensions.js | |
| parent | 76f7b3678d3f1ff99c3935a774d420453b0c3cb9 (diff) | |
| download | WeatherApp-dcdfc94cb39dfe2c39925a0145ffa45e2d061c30.tar.xz WeatherApp-dcdfc94cb39dfe2c39925a0145ffa45e2d061c30.zip | |
Initial Upload via GIT
Diffstat (limited to 'cordova/node_modules/simctl/lib/simctl-extensions.js')
| -rwxr-xr-x | cordova/node_modules/simctl/lib/simctl-extensions.js | 91 |
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; |
