You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
1.9 KiB
JavaScript
93 lines
1.9 KiB
JavaScript
const readline = require('readline');
|
|
|
|
const {log, biglog, errorlog, colorize} = require("./out");
|
|
|
|
const cmds = require("./cmds");
|
|
|
|
|
|
// Mensaje inicial
|
|
biglog('CORE Quiz', 'green');
|
|
|
|
|
|
const rl = readline.createInterface({
|
|
input: process.stdin,
|
|
output: process.stdout,
|
|
prompt: colorize("quiz > ", 'blue'),
|
|
completer: (line) => {
|
|
const completions = 'h help add delete edit list test p play credits q quit'.split(' ');
|
|
const hits = completions.filter((c) => c.startsWith(line));
|
|
// show all completions if none found
|
|
return [hits.length ? hits : completions, line];
|
|
}
|
|
});
|
|
|
|
rl.prompt();
|
|
|
|
rl
|
|
.on('line', (line) => {
|
|
|
|
let args = line.split(" ");
|
|
let cmd = args[0].toLowerCase().trim();
|
|
|
|
switch (cmd) {
|
|
case '':
|
|
rl.prompt();
|
|
break;
|
|
|
|
case 'help':
|
|
case 'h':
|
|
cmds.helpCmd(rl);
|
|
break;
|
|
|
|
case 'quit':
|
|
case 'q':
|
|
cmds.quitCmd(rl);
|
|
break;
|
|
|
|
case 'add':
|
|
cmds.addCmd(rl);
|
|
break;
|
|
|
|
case 'list':
|
|
cmds.listCmd(rl);
|
|
break;
|
|
|
|
case 'show':
|
|
cmds.showCmd(rl, args[1]);
|
|
break;
|
|
|
|
case 'test':
|
|
cmds.testCmd(rl, args[1]);
|
|
break;
|
|
|
|
case 'play':
|
|
case 'p':
|
|
cmds.playCmd(rl);
|
|
break;
|
|
|
|
case 'delete':
|
|
cmds.deleteCmd(rl, args[1]);
|
|
break;
|
|
|
|
case 'edit':
|
|
cmds.editCmd(rl, args[1]);
|
|
break;
|
|
|
|
case 'credits':
|
|
cmds.creditsCmd(rl);
|
|
break;
|
|
|
|
default:
|
|
log(`Comando desconocido: '${colorize(cmd, 'red')}'`);
|
|
log(`Use ${colorize('help', 'green')} para ver todos los comandos disponibles.`);
|
|
rl.prompt();
|
|
break;
|
|
}
|
|
})
|
|
.on('close', () => {
|
|
log('Adios!');
|
|
process.exit(0);
|
|
});
|
|
|
|
|