Safer workaround for Android SDK detection with Java 9/10

Summary: Safer workaround for Android SDK detection with Java 9/10

Reviewed By: mweststrate

Differential Revision: D19158381

fbshipit-source-id: 8c4ce456543712204423f14abe8a1840308c8bf9
This commit is contained in:
Anton Nikolaev
2019-12-18 07:23:03 -08:00
committed by Facebook Github Bot
parent db721e94a6
commit b716b50729
4 changed files with 32 additions and 7 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "flipper-doctor",
"version": "0.2.3",
"version": "0.2.4",
"description": "Utility for checking for issues with a flipper installation",
"main": "lib/index.js",
"types": "lib/index.d.ts",

View File

@@ -31,14 +31,39 @@ export type EnvironmentInfo = {
};
};
export async function getEnvInfo(): Promise<EnvironmentInfo> {
async function retrieveAndParseEnvInfo(): Promise<any> {
return JSON.parse(
await run(
{
SDKs: ['iOS SDK', 'Android SDK'],
IDEs: ['Xcode'],
Languages: ['Java'],
},
{json: true, showNotFound: true},
),
);
}
// Temporary workaround for https://github.com/facebook/flipper/issues/667 until it properly fixed in 'envinfo'.
async function workaroundForNewerJavaVersions(envInfo: any) {
try {
if (envInfo.Languages.Java && envInfo.Languages.Java.version) {
const [majorVersion] = envInfo.Languages.Java.version
.split('.')
.slice(0, 1)
.map((x: string) => parseInt(x, 10));
if (8 < majorVersion && majorVersion < 11) {
process.env.JAVA_OPTS =
'-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee';
return await retrieveAndParseEnvInfo();
}
}
} catch (e) {
console.error(e);
}
return envInfo;
}
export async function getEnvInfo(): Promise<EnvironmentInfo> {
return workaroundForNewerJavaVersions(await retrieveAndParseEnvInfo());
}

View File

@@ -136,7 +136,7 @@
"emotion": "^10.0.23",
"expand-tilde": "^2.0.2",
"express": "^4.15.2",
"flipper-doctor": "^0.2.3",
"flipper-doctor": "^0.2.4",
"fs-extra": "^8.0.1",
"immer": "^5.0.1",
"immutable": "^4.0.0-rc.12",

View File

@@ -4147,10 +4147,10 @@ flatted@^2.0.0:
resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08"
integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==
flipper-doctor@^0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/flipper-doctor/-/flipper-doctor-0.2.3.tgz#2678c3dc924c1dd69cda65aef9f43040f3b8e085"
integrity sha512-61BJUid7yWu/LzuYYuwdOgakQXWoEXV9+PwKPWwwup73u4k80nUdf+Hx4Ev0dMS/mjQuZ3KwmmxFdFhV/3iWTQ==
flipper-doctor@^0.2.4:
version "0.2.4"
resolved "https://registry.yarnpkg.com/flipper-doctor/-/flipper-doctor-0.2.4.tgz#907c14282a9f65737f96505dfb0c5022109a10fe"
integrity sha512-MjX66Yd1dPSLcnOXIfqPaB5KXmd+A7f+99ashGhbRV+2Y8bXadN4kvYrUZ4gD177LmtMdNjISjm87kBt5t9pnw==
dependencies:
"@types/node" "^12.12.12"
envinfo "^7.4.0"