From 1220cac6e418479e789e059b636c1c83ac9a11e9 Mon Sep 17 00:00:00 2001 From: Shazron Abdullah Date: Mon, 12 Oct 2015 16:55:08 -0700 Subject: [PATCH] Moved check_reqs.js to src, added jshint to npm test --- package.json | 12 +++++++++++- src/check_reqs.js | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100755 src/check_reqs.js diff --git a/package.json b/package.json index c2a3870d..7bc5158e 100644 --- a/package.json +++ b/package.json @@ -7,17 +7,27 @@ "description": "launch iOS apps iOS devices from the command line (Xcode 7)", "main": "ios-deploy", "scripts": { - "preinstall": "./check_reqs.js && xcodebuild" + "preinstall": "./src/check_reqs.js && xcodebuild" }, "bin": "./build/Release/ios-deploy", "repository": { "type": "git", "url": "https://github.com/phonegap/ios-deploy" }, + "devDependencies": { + "jshint": "2.5.8" + }, + "scripts": { + "test": "npm run jshint", + "jshint": "node node_modules/jshint/bin/jshint src" + }, "keywords": [ "ios-deploy", "deploy to iOS device" ], + "bugs": { + "url": "https://github.com/phonegap/ios-deploy/issues" + }, "author": "Greg Hughes", "license": "GPLv3" } diff --git a/src/check_reqs.js b/src/check_reqs.js new file mode 100755 index 00000000..b6b5ee58 --- /dev/null +++ b/src/check_reqs.js @@ -0,0 +1,45 @@ +#!/usr/bin/env node + +var util = require('util'); +var os = require('os'); +var child_process = require('child_process'); + +var XCODEBUILD_MIN_VERSION = '6.0'; +var XCODEBUILD_NOT_FOUND_MESSAGE = util.format('Please install Xcode version %s or greater from the Mac App Store.', XCODEBUILD_MIN_VERSION); +var TOOL = 'xcodebuild'; + +var xcode_version = child_process.spawn(TOOL, ['-version']), + version_string = ''; + +xcode_version.stdout.on('data', function (data) { + version_string += data; +}); + +xcode_version.stderr.on('data', function (data) { + console.log('stderr: ' + data); +}); + +xcode_version.on('error', function (err) { + console.log(util.format('Tool %s was not found. %s', TOOL, XCODEBUILD_NOT_FOUND_MESSAGE)); +}); + +xcode_version.on('close', function (code) { + if (code === 0) { + var arr = version_string.match(/^Xcode (\d+\.\d+)/); + var ver = arr[1]; + + if (os.release() >= '15.0.0' && ver < '7.0') { + console.log(util.format('You need at least Xcode 7.0 when you are on OS X 10.11 El Capitan (you have version %s)', ver)); + process.exit(1); + } + + if (ver < XCODEBUILD_MIN_VERSION) { + console.log(util.format('%s : %s. (you have version %s)', TOOL, XCODEBUILD_NOT_FOUND_MESSAGE, ver)); + } + } + process.exit(code); +}); + + + +