moocauto
Version:
Herramienta de corrección automática para los MOOCs de MiriadaX de la UPM
83 lines (74 loc) • 2.98 kB
JavaScript
var { spawn, execSync } = require('child_process');
var opsys = process.platform;
var suffix = "Linux";
var isUpload = false;
var myArgs = process.argv.slice(2);
console.log("\n");
(function checkArgs () {
for (var i = 0; i < myArgs.length; i++) {
var arg = myArgs[i].trim();
switch (arg) {
case "--help":
case "-h":
console.info(`
# # ####### ####### #####
## ## # # # # # # ## # # ##### ####
# # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # #
# # # # # # # ###### # # # # #
# # # # # # # # # # # # # # #
# # ####### ####### ##### # # #### # ####
Herramienta de autocorrección para MiriadaX
Uso:
Si se ha instalado como paquete global
$ moocauto [OPCIONES]
Si se ha instalado como paquete local
$ npx moocauto # desde el directorio donde está el package.json de la práctica
Opciones:
[sin opciones]: Ejecuta los tests sobre el código de la entrega
-h, --help: Ayuda sobre los comandos disponibles en la herramienta
-v, --version: Comprueba la versión de moocauto
`)
process.exit(0);
return;
case "--version":
case "-v":
var currentVersion = require('../package.json').version;
var latestVersion = undefined;
try {
latestVersion = execSync("npm show moocauto version").toString().trim();
if (latestVersion === currentVersion) {
console.log("Tienes la última versión del moocauto (" + currentVersion + ")\n")
} else {
console.log("No tienes la última versión del moocauto (" + latestVersion + "). La versión instalada es la " + currentVersion);
console.log("\nPara actualizarlo ejecuta \"npm update -g moocauto\" si lo has instalado como paquete global, o \"npm update moocauto\" si lo has instalado como paquete local");
}
} catch (err) {
console.error ("No se ha podido comprobar si el moocauto está utilizado. La versión instalada es la " + currentVersion);
}
process.exit(0);
return;
case "--upload":
case "-u":
isUpload = true;
return;
default:
if (i === myArgs.length - 1) {
console.log("No se reconoce la opción " + arg );
console.log("\nPara obtener ayuda sobre las opciones disponibles ejecuta \"moocauto -h\" (o \"npx moocauto -h\" si lo has instalado como paquete local)");
process.exit(0);
} else {
console.log("No se reconoce la opción " + arg);
}
}
}
})()
if (opsys == "darwin") { // Mac
suffix= "MacOS";
} else if (opsys == "win32" || opsys == "win64") { // Win
suffix = "Windows.exe";
}
console.log("\nOS detectado: " + suffix.split(".")[0]);
var cmd = __dirname + "/corrector-" + suffix.toLowerCase();
spawn(cmd, isUpload ? ["upload"] : [] ,{stdio: 'inherit'});