#! /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();