feat: add components
This commit is contained in:
67
components/component-javahome.js
Normal file
67
components/component-javahome.js
Normal file
@@ -0,0 +1,67 @@
|
||||
|
||||
var OSUtil = Packages.me.hatter.tools.commons.os.OSUtil;
|
||||
|
||||
var getJavaHomeFromJdks = (version) => {
|
||||
var jdksPath = $$.file('~/.jssp/jdks');
|
||||
if (!(jdksPath.exists() && jdksPath.isDirectory())) {
|
||||
return null;
|
||||
}
|
||||
var jdkVersions = $ARRAY(jdksPath.listFiles()).filter((p) => {
|
||||
return p.isDirectory();
|
||||
}).map((p) => {
|
||||
var jdkVersion = p.getName();
|
||||
if (jdkVersion.startsWith('jdk-')) {
|
||||
jdkVersion = jdkVersion.substring('jdk-'.length);
|
||||
} else if (jdkVersion.startsWith('jdk')) {
|
||||
jdkVersion = jdkVersion.substring('jdk'.length);
|
||||
}
|
||||
return [jdkVersion, p.getAbsolutePath()];
|
||||
}).sort((a, b) => {
|
||||
return b[0] - a[0];
|
||||
});
|
||||
for (var i = 0; i < jdkVersions.length; i++) {
|
||||
if (jdkVersions[i][0].startsWith(version)) {
|
||||
return jdkVersions[i][1];
|
||||
}
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
var getJavaHomeFromBuildConfig = (version) => {
|
||||
var buildConfigRFile = __.rfile.from('~/.jssp/config/buildconfig.json');
|
||||
if (buildConfigRFile.notExists()) {
|
||||
return null;
|
||||
}
|
||||
var buildConfigJSON = JSON.parse(buildConfigRFile.string());
|
||||
if (buildConfigJSON['java'] && buildConfigJSON['java']['versions']) {
|
||||
var versions = buildConfigJSON['java']['versions'];
|
||||
for (var i = 0; i < versions.length; i++) {
|
||||
if (versions[i].startsWith(version)) {
|
||||
return buildConfigJSON['java'][versions[i]]['home'];
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
var getJavaHome = (version) => {
|
||||
if ((version == null) || ($STR(version) == '')) { return null; }
|
||||
if (OSUtil.isMacOS()) {
|
||||
var jversions = $$.shell().commands('/usr/libexec/java_home', '-version', version).start();
|
||||
if (jversions[1] && $STR(jversions[1].toString()).contains('Unable to find any JVMs matching version')) {
|
||||
return null;
|
||||
}
|
||||
return jversions[0].toString().trim();
|
||||
} else {
|
||||
var javaHomeFromJdks = getJavaHomeFromJdks(version);
|
||||
if (javaHomeFromJdks != null) {
|
||||
return javaHomeFromJdks;
|
||||
}
|
||||
var javaHomeFromBuildConfig = getJavaHomeFromBuildConfig(version);
|
||||
return javaHomeFromBuildConfig;
|
||||
}
|
||||
};
|
||||
|
||||
if (typeof exports == 'object') {
|
||||
exports.getJavaHome = getJavaHome;
|
||||
}
|
||||
Reference in New Issue
Block a user