UNPKG

knuddels-local

Version:

Local development environment for UserApps

89 lines (75 loc) 2.14 kB
#!/usr/bin/env node const yargs = require('yargs'); const OS = require('os'); const Path = require('path'); const Execute = require('child_process').exec; const Paths = { Emulator: __dirname, Home: OS.homedir(), Knuddels: Path.join(OS.homedir(), 'Knuddels-Stapp'), Java: Path.join(OS.homedir(), 'Knuddels-Stapp', 'CommonFiles', 'Java', 'bin'), Applet: Path.join(OS.homedir(), 'Knuddels-Stapp', 'bin'), }; yargs.scriptName('knuddels'); yargs.usage(`knuddels local development environment v${require("../package.json").version} Usage: knuddels <command> [options] For more information, see https://developer.knuddels.de/.`); yargs.options({ /*verbose: { type: 'boolean', describe: 'Show more details' },*/ type: { type: 'string', choices: [ 'jx', 'jfx', 'browser' ], describe: 'Select preset' } }); yargs.alias('t', 'type'); yargs.alias('h', 'help'); yargs.alias('v', 'version'); yargs.parse(process.argv.slice(2), (error, argv, output) => { if(error && output) { console.error(output); process.exitCode = 1; return; } if(output) { console.log(output); return; } if(argv._.length == 0) { console.log(yargs.getUsageInstance().help()); return; } let options = { type: argv.type || 'jfx', verbose: argv.verbose || false }; if(argv._.indexOf('run') > -1) { let command; switch(options.type) { case 'browser': command = (process.platform == 'darwin'? 'open': process.platform == 'win32'? 'start': 'xdg-open') + ' http://localhost:2717'; break; case 'jfx': command = Path.join(Paths.Java, 'java.exe') + ' -jar ' + Path.join(Paths.Emulator, 'emulator.jar'); break; case 'jx': command = Path.join(Paths.Java, 'java.exe') + ' -jar ' + Path.join(Paths.Emulator, 'emulator.jar'); break; } var child = Execute(command, function (error, output, errors) { console.log('Output -> ' + output); if(error !== null){ console.log("Error -> "+errors, error); } }); } else { console.log(yargs.getUsageInstance().help()); } });