You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ia...@apache.org on 2014/09/11 17:29:05 UTC

[23/31] android commit: CB-7511 Auto-detect Android SDK when Android Studio is installed

CB-7511 Auto-detect Android SDK when Android Studio is installed


Project: http://git-wip-us.apache.org/repos/asf/cordova-android/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-android/commit/8237c411
Tree: http://git-wip-us.apache.org/repos/asf/cordova-android/tree/8237c411
Diff: http://git-wip-us.apache.org/repos/asf/cordova-android/diff/8237c411

Branch: refs/heads/4.0.x
Commit: 8237c41143abf594ff0bcc717a7847a7aa38654c
Parents: 8354651
Author: Andrew Grieve <ag...@chromium.org>
Authored: Wed Sep 10 10:14:38 2014 -0400
Committer: Andrew Grieve <ag...@chromium.org>
Committed: Wed Sep 10 10:14:38 2014 -0400

----------------------------------------------------------------------
 bin/lib/check_reqs.js | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-android/blob/8237c411/bin/lib/check_reqs.js
----------------------------------------------------------------------
diff --git a/bin/lib/check_reqs.js b/bin/lib/check_reqs.js
index 40f3ade..d2b3dcf 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'));
         }
     });
 };