UNPKG

concierge-bot

Version:

Extensible general purpose chat bot.

84 lines (80 loc) 2.43 kB
const argsParser = require('concierge/arguments'), path = require('path'); const conciergeArguments = [ { long: '--debug', short: '-d', description: 'Sets the log level. Argument is optional. Default=info.', expects: ['LEVEL'], defaults: ['debug'], run: (out, value) => { value = value[0].trim().toLowerCase(); console.setLogLevel(value); out.log(`Log level set to "${value}".`.yellow); } }, { long: '--log', short: '-l', description: 'Saves logs to a local file.', run: out => { console.setLog(true); out.log('File logging mode enabled.'.yellow); } }, { long: '--timestamp', short: '-t', description: 'Adds a timestamp to each output log message.', run: out => { console.setTimestamp(true); out.log('Timestamps enabled.'.yellow); } }, { long: '--language', short: '-i', description: 'Sets the locale that should be used by the bot.', expects: ['LOCALE'], run: (out, value) => { out.log(`Locale set to "${value[0]}".`.yellow); global.__i18nLocale = value[0]; } }, { long: '--moduledir', short: '-m', description: 'Sets the search path for modules used by the bot.', expects: ['DIRECTORY'], run: (out, value) => { global.__modulesPath = path.resolve(value[0]); out.log(`Modules directory set to "${value}".`.yellow); } } ]; module.exports = cliArgs => { try { // Parse optional arguments const args = argsParser.parseArguments(cliArgs, conciergeArguments, { enabled: true, string: 'node main.js', colours: true }, true); // Check if help was run if (args.parsed['-h']) { process.exit(0); } // Check startup modes if (args.unassociated.length === 0) { console.info('No integrations specified, defaulting to \'test\'.'); args.unassociated.push('test'); } return args; } catch (e) { console.error(e.message); process.exit(-1); } return null; };