From 8237c41143abf594ff0bcc717a7847a7aa38654c Mon Sep 17 00:00:00 2001 From: Andrew Grieve Date: Wed, 10 Sep 2014 10:14:38 -0400 Subject: [PATCH] CB-7511 Auto-detect Android SDK when Android Studio is installed --- bin/lib/check_reqs.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/bin/lib/check_reqs.js b/bin/lib/check_reqs.js index 40f3ade3..d2b3dcf5 100644 --- a/bin/lib/check_reqs.js +++ b/bin/lib/check_reqs.js @@ -141,6 +141,20 @@ module.exports.check_android = function() { var androidCmdPath = forgivingWhichSync('android'); var adbInPath = !!forgivingWhichSync('adb'); var hasAndroidHome = !!process.env['ANDROID_HOME'] && fs.existsSync(process.env['ANDROID_HOME']); + function maybeSetAndroidHome(value) { + if (fs.existsSync(value)) { + hasAndroidHome = true; + process.env['ANDROID_HOME'] = value; + } + } + if (!hasAndroidHome && !androidCmdPath) { + if (isWindows) { + maybeSetAndroidHome(path.join(process.env['LOCALAPPDATA'], 'Android', 'android-studio', 'sdk')); + maybeSetAndroidHome(path.join(process.env['ProgramFiles'], 'Android', 'android-studio', 'sdk')); + } else if (process.platform == 'darwin') { + maybeSetAndroidHome('/Applications/Android Studio.app/sdk'); + } + } if (hasAndroidHome && !androidCmdPath) { process.env['PATH'] += path.delimiter + path.join(process.env['ANDROID_HOME'], 'tools'); } @@ -171,7 +185,8 @@ module.exports.check_android_target = function(valid_target) { .then(function(output) { if (!output.match(valid_target)) { throw new Error('Please install Android target "' + valid_target + '".\n' + - 'Hint: Run "android" from your command-line to open the SDK manager.'); + output + '\n\n' + + 'Hint: Install it using the SDK manager by running: ' + forgivingWhichSync('android')); } }); };