feat: scripts
This commit is contained in:
71
scripts/konanc.js
Normal file
71
scripts/konanc.js
Normal file
@@ -0,0 +1,71 @@
|
||||
#! /usr/bin/env runjs
|
||||
|
||||
var OSUtil = Packages.me.hatter.tools.commons.os.OSUtil;
|
||||
|
||||
//var argsjs = require('component-args.js');
|
||||
var osjs = require('component-os.js');
|
||||
var packagejs = require('component-package.js');
|
||||
var javahomejs = require('component-javahome.js');
|
||||
var filesystemjs = require('component-filesystem.js');
|
||||
|
||||
var KONANC_PACKAGE_INFO = {
|
||||
'macOS': {
|
||||
'package': 'https://publicbucket-1251781687.coscd.myqcloud.com/kotlin-native-macos-0.5.tar.gz',
|
||||
//'package': 'https://playsecurity.org/getdoc/1745_9CAC8D9CD48CE2362D7910AA09627555/kotlin-native-macos-0.5.tar.gz',
|
||||
'sha256': '73dcaebb924b8597e71561e2b9027e64355fd08a0c3b28e055e550550f03cad2',
|
||||
'basePath': '~/.jssp/builder/kotlin-native-macos-0.5',
|
||||
'subPath': 'kotlin-native-macos-0.5',
|
||||
'bin': 'bin/konanc'
|
||||
},
|
||||
'Linux': {
|
||||
'package': 'https://publicbucket-1251781687.coscd.myqcloud.com/kotlin-native-linux-0.5.tar.gz',
|
||||
//'package': 'https://playsecurity.org/getdoc/1744_BA86D28143757D90507E80BD823392AB/kotlin-native-linux-0.5.tar.gz',
|
||||
'sha256': '6c5630c3ba6104d263e3947f12bf975efaf54fd95d74db4bd2df1d211cead9e4',
|
||||
'basePath': '~/.jssp/builder/kotlin-native-linux-0.5',
|
||||
'subPath': 'kotlin-native-linux-0.5',
|
||||
'bin': 'bin/konanc'
|
||||
}
|
||||
};
|
||||
|
||||
var main = () => {
|
||||
if (osjs.getOS().arch != 'x86_64') {
|
||||
xprintln('[ERROR] Only suports x86_64!');
|
||||
return;
|
||||
}
|
||||
|
||||
var javaHome = javahomejs.getJavaHome('1.8');
|
||||
if (javaHome == null) { javaHome = javahomejs.getJavaHome('9.0'); }
|
||||
if (javaHome == null) {
|
||||
xprintln('[WARN] Cannot find java, use system Java.');
|
||||
}
|
||||
|
||||
var packageInfo;
|
||||
if (OSUtil.isMacOS()) {
|
||||
packageInfo = KONANC_PACKAGE_INFO.macOS;
|
||||
} else if (OSUtil.isLinux()) {
|
||||
packageInfo = KONANC_PACKAGE_INFO.Linux;
|
||||
} else {
|
||||
xprintln('[ERROR] Only supports macOS and Linux.');
|
||||
return;
|
||||
}
|
||||
|
||||
xprintln('[INFO] Get konanc local package info.');
|
||||
var konancLocalPackage = packagejs.getLocalPackage(packageInfo, true);
|
||||
|
||||
var commandArgs = [];
|
||||
var buildCommands = [];
|
||||
buildCommands.push(konancLocalPackage.binFile);
|
||||
$ARR($ARGS).forEach((a) => { buildCommands.push(a); commandArgs.push(a); });
|
||||
|
||||
xprintln('[INFO] JAVA_HOME = ' + (javaHome || crender('[GREEN]@system')));
|
||||
xprintln('[INFO] KONANC_HOME = ' + konancLocalPackage.packageHome);
|
||||
xprintln('[INFO] ARGUMENTS = ' + $ARR(commandArgs).toJavaList());
|
||||
|
||||
var sh = $$.shell(true);
|
||||
if (javaHome != null) {
|
||||
sh.env('JAVA_HOME', javaHome).env('PATH', javaHome + '/bin:' + $$.env('PATH'));
|
||||
}
|
||||
sh.commands(buildCommands).run();
|
||||
};
|
||||
|
||||
main();
|
||||
Reference in New Issue
Block a user