51 lines
1.8 KiB
JavaScript
51 lines
1.8 KiB
JavaScript
#! /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 JAVACC_PACKAGE_INFO = {
|
|
'5': {
|
|
'package': 'https://publicbucket-1251781687.coscd.myqcloud.com/javacc-5.0.zip',
|
|
//'package': 'https://play.hatter.me/getdoc/1749_C31883A04B509AF7E93BE382B37F7F88/javacc-5.0.zip',
|
|
'sha256': '9a692fdd4ee1365da540054f4bb95e4852cf0216ce1b7ba54470365f5e52c8c7',
|
|
'basePath': '~/.jssp/builder/javacc-5.0',
|
|
'subPath': 'javacc-5.0',
|
|
'bin': 'bin/javacc'
|
|
}
|
|
};
|
|
|
|
var main = () => {
|
|
|
|
var javaHome = javahomejs.getJavaHome('1.7');
|
|
if (javaHome == null) { javaHome = javahomejs.getJavaHome('1.8'); }
|
|
if (javaHome == null) { javaHome = javahomejs.getJavaHome('9.0'); }
|
|
if (javaHome == null) {
|
|
xprintln('[WARN] Cannot find java, use system Java.');
|
|
}
|
|
|
|
xprintln('[INFO] Get JavaCC local package info.');
|
|
var javaccLocalPackage = packagejs.getLocalPackage(JAVACC_PACKAGE_INFO['5'], true);
|
|
|
|
var commandArgs = [];
|
|
var buildCommands = [];
|
|
buildCommands.push(javaccLocalPackage.binFile);
|
|
$ARR($ARGS).forEach((a) => { buildCommands.push(a); commandArgs.push(a); });
|
|
|
|
xprintln('[INFO] JAVA_HOME = ' + (javaHome || crender('[GREEN]@system')));
|
|
xprintln('[INFO] JAVACC_HOME = ' + javaccLocalPackage.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();
|