UNPKG

castelog

Version:

Programación JavaScript en castellano.

65 lines (60 loc) 1.95 kB
#!/usr/bin/env node const fs = require("fs"); const path = require("path"); const child_process = require("child_process"); const packageVersion = (() => { try { // Caso de en: /castelog-core/src return require(__dirname + "/../package.json").version; } catch(error) { try { // Caso de en: /calo_modules/.source return require(__dirname + "/../../package.json").version; } catch(error) { try { // Caso de en: /calox return require(__dirname + "/package.json").version; } catch (error) { throw new Error("Could not find «package.json»"); } } } })(); const Castelog_compiler = (() => { try { // Caso de en: /castelog-core/src y /calo_modules/.source return require(__dirname + "/castelog.api.js"); } catch (error) { try { // Caso de en: /calox return require(__dirname + "/calo_modules/.source/castelog.api.js");; } catch (error) { throw new Error("Could not find «castelog.api.js»"); } } })(); const args = require("yargs") .version(packageVersion) .option("ejecutar", { type: "boolean", alias: "e", default: false, describe: "Ejecuta el primer fichero tras la compilación.", }) .argv; if(args._.length === 0) { Castelog_compiler.help_for_cli(); process.exit(0); } const output = Castelog_compiler.compileFiles(args._, { ...args.empaquetar ? { empaquetar: args.salida } : {} }); let overrideExecutable = (output.$ && output.$.executable) ? output.$.executable : false; if(args.ejecutar) { const firstClgFile = args._[0]; const firstJsFile = overrideExecutable ? overrideExecutable : path.resolve(firstClgFile.replace(/\.(calo)$/gi, "") + ".js"); const command2 = "node " + JSON.stringify(firstJsFile); console.log(command2); child_process.execSync(command2, { cwd: process.cwd(), stdio: [ process.stdio, process.stdout, process.stderr ], }); }