gamelog/bin/cli.js

79 lines
1.6 KiB
JavaScript

const inquirer = require('inquirer');
const { exec } = require('child_process');
const database = 'db/games.rec';
console.log('Create a new gamelog')
const questions = [
{
type: 'input',
name: 'System',
message: 'System (e.g. D&D, Troika!, etc.)',
},
{
type: 'input',
name: 'Module',
message: `What's the name of the module?`,
},
{
type: 'list',
name: 'Role',
message: 'Were you the DM or a player?',
choices: ['DM', 'Player'],
},
{
type: 'input',
name: 'Format',
message: 'Format? (e.g. play by post, roll20, etc)'
},
{
type: 'list',
name: 'Length',
message: 'Length',
choices: ['Campaign', 'Oneshot', 'Adventure']
},
{
type: 'list',
name: 'Status',
message: 'Status',
choices: ['Ongoing', 'Complete', 'Hiatus', 'Dead']
},
{
type: 'input',
name: 'Started',
message: 'Started At (YYYY-MM-DD)',
validate(value) {
const valid = value.match(/\d{4}-\d{2}-\d{2}/);
return valid && true || 'Enter YYYY-MM-DD';
}
},
{
type: 'editor',
name: 'Notes',
message: 'How did it go?'
},
];
inquirer.prompt(questions).then((answers) => {
let cmd = `recins --verbose -t Game `
for (key in answers) {
cmd += `-f ${key} -v "${answers[key]?.trim() || 'unk'}" `
}
cmd += database
console.log(cmd)
exec(cmd, (error, stdout, stderr) => {
if (error) {
console.log(`error: ${error.message}`);
return;
}
if (stderr) {
console.log(`stderr: ${stderr}`);
return;
}
console.log(`stdout: ${stdout}`);
});
});