UNPKG

mkjs-cli

Version:
55 lines (43 loc) 1.21 kB
#!/usr/bin/env node const fs = require('fs'); const path = require('path'); const compiler = require('../language/compiler'); const main = module.exports = { load(p_file) { let s_input = fs.readFileSync(p_file, 'utf8'); let h_result = compiler({ input: s_input, cwd: path.dirname(path.resolve(p_file)), }); return h_result; }, compile(h_compile) { return compiler(h_compile); }, }; if(module === require.main) { let h_cli = require('commander') .version(require('../../package.json').version, '-v, --version') .usage('[options] <file>') .option('-g, --config', 'pass a JSON-like JavaScript object to insert global vars at the top') // .arguments('file') .parse(process.argv); if(!h_cli.args.length) { h_cli.help(); } let p_input = path.join(process.cwd(), h_cli.args[0]); let s_prepend = ''; if(h_cli.config) { debugger; let h_vars = eval(h_cli.config); for(let s_var in h_vars) { s_prepend += `@.const ${s_var} = ${JSON.stringify(h_vars[s_var])};\n`; } } let g_result = main.load(p_input, s_prepend); if(g_result.error) { console.error(g_result.error.message+'\n'+g_result.error.stack); process.exit(1); } console.log(g_result.output); }