From f697ca7dec523a113bed9db8d288429028833e0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A8=E3=83=AA=E3=82=B9?= Date: Fri, 28 Mar 2025 20:30:40 +0900 Subject: [PATCH] fix(windows): get gradle path with which command (#1793) --- lib/check_reqs.js | 42 +----------------------------------------- 1 file changed, 1 insertion(+), 41 deletions(-) diff --git a/lib/check_reqs.js b/lib/check_reqs.js index 2422296b..6e1bfd4a 100644 --- a/lib/check_reqs.js +++ b/lib/check_reqs.js @@ -17,7 +17,6 @@ under the License. */ -const execa = require('execa'); const path = require('node:path'); const fs = require('node:fs'); const { forgivingWhichSync, isWindows, isDarwin } = require('./utils'); @@ -104,46 +103,7 @@ function getUserCompileSdkVersion (projectRoot) { } module.exports.get_gradle_wrapper = function () { - let androidStudioPath; - let i = 0; - let foundStudio = false; - let program_dir; - // OK, This hack only works on Windows, not on Mac OS or Linux. We will be deleting this eventually! - if (module.exports.isWindows()) { - // "shell" option enabled for CVE-2024-27980 (Windows) Mitigation - // See https://nodejs.org/en/blog/vulnerability/april-2024-security-releases-2 for more details - const result = execa.sync(path.join(__dirname, 'getASPath.bat'), { shell: true }); - // console.log('result.stdout =' + result.stdout.toString()); - // console.log('result.stderr =' + result.stderr.toString()); - - if (result.stderr.toString().length > 0) { - const androidPath = path.join(process.env.ProgramFiles, 'Android') + '/'; - if (fs.existsSync(androidPath)) { - program_dir = fs.readdirSync(androidPath); - while (i < program_dir.length && !foundStudio) { - if (program_dir[i].startsWith('Android Studio')) { - foundStudio = true; - androidStudioPath = path.join(process.env.ProgramFiles, 'Android', program_dir[i], 'gradle'); - } else { ++i; } - } - } - } else { - // console.log('got android studio path from registry'); - // remove the (os independent) new line char at the end of stdout - // add gradle to match the above. - androidStudioPath = path.join(result.stdout.toString().split('\r\n')[0], 'gradle'); - } - } - - if (androidStudioPath !== null && fs.existsSync(androidStudioPath)) { - const dirs = fs.readdirSync(androidStudioPath); - if (dirs[0].split('-')[0] === 'gradle') { - return path.join(androidStudioPath, dirs[0], 'bin', 'gradle'); - } - } else { - // OK, let's try to check for Gradle! - return forgivingWhichSync('gradle'); - } + return forgivingWhichSync('gradle'); }; // Returns a promise. Called only by build and clean commands.