From e3198b0f6b3c0d0877e8c1618bea1874392c51dd Mon Sep 17 00:00:00 2001 From: Joe Bowser Date: Tue, 21 Mar 2017 16:07:42 -0700 Subject: [PATCH] CB-12595: Ugly code, but this should find an Android Studio installation and use the sweet gradle center found inside --- bin/templates/cordova/lib/check_reqs.js | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/bin/templates/cordova/lib/check_reqs.js b/bin/templates/cordova/lib/check_reqs.js index 24f2ad40..15fa8df8 100644 --- a/bin/templates/cordova/lib/check_reqs.js +++ b/bin/templates/cordova/lib/check_reqs.js @@ -95,10 +95,31 @@ module.exports.check_ant = function() { module.exports.get_gradle_wrapper = function() { var androidStudioPath; + var i = 0; + var foundStudio = false; + var program_dir; if (module.exports.isDarwin()) { - androidStudioPath = path.join('/Applications', 'Android Studio.app', 'Contents', 'gradle'); + program_dir = fs.readdirSync('/Applications'); + while(i < program_dir.length && !foundStudio) { + if(program_dir[i].startsWith('Android Studio')) { + //TODO: Check for a specific Android Studio version, make sure it's not Canary + androidStudioPath = path.join('/Applications', program_dir[i], 'Contents', 'gradle'); + foundStudio = true; + } else { ++i; } + } } else if (module.exports.isWindows()) { - androidStudioPath = path.join(process.env['ProgramFiles'],'Android', 'Android Studio', 'gradle'); + var androidPath = path.join(process.env['ProgramFiles'], 'Android'); + program_dir = fs.readdirSync(androidPath + '/'); + console.log(path.join(process.env['ProgramFiles'], 'Android')); + while(i < program_dir.length && !foundStudio) { + console.log(program_dir[i]); + if(program_dir[i].startsWith('Android Studio')) { + foundStudio = true; + androidStudioPath = path.join(process.env['ProgramFiles'],'Android', program_dir[i], 'gradle'); + console.log(androidStudioPath); + } + else { ++i; } + } } if (androidStudioPath !== null && fs.existsSync(androidStudioPath)) {