mirror of
https://github.com/wassname/talk.git
synced 2026-06-29 04:28:20 +08:00
58 lines
1.8 KiB
JavaScript
Executable File
58 lines
1.8 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
/**
|
|
* Module dependencies.
|
|
*/
|
|
|
|
const program = require('./commander');
|
|
const {head, map} = require('lodash');
|
|
const Matcher = require('did-you-mean');
|
|
|
|
program
|
|
.command('serve', 'serve the application')
|
|
.command('settings', 'interact with the application settings')
|
|
.command('assets', 'interact with assets')
|
|
.command('setup', 'setup the application')
|
|
.command('jobs', 'work with the job queues')
|
|
.command('token', 'work with the access tokens')
|
|
.command('users', 'work with the application auth')
|
|
.command('migration', 'provides utilities for migrating the database')
|
|
.command('verify', 'provides utilities for performing data verification')
|
|
.command(
|
|
'plugins',
|
|
'provides utilities for interacting with the plugin system'
|
|
)
|
|
.parse(process.argv);
|
|
|
|
// If the command wasn't found, output help.
|
|
const cmds = map(program.commands, '_name');
|
|
const cmd = head(program.args);
|
|
if (!cmds.includes(cmd)) {
|
|
const m = new Matcher(cmds);
|
|
const similarCMDs = m.list(cmd);
|
|
|
|
console.error(`cli '${cmd}' is not a talk cli command. See 'cli --help'.`);
|
|
if (similarCMDs.length > 0) {
|
|
const sc = similarCMDs.map(({value}) => `\t${value}\n`).join('');
|
|
console.error(`\nThe most similar commands are\n${sc}`);
|
|
}
|
|
process.exit(1);
|
|
}
|
|
|
|
/**
|
|
* When this provess exists, check to see if we have a running command, if we do
|
|
* check to see if it is still running. If it is, then kill it with a SIGINT
|
|
* signal. This is for the use case where we want to kill the process that is
|
|
* labled with the PID written out by the parent process.
|
|
*/
|
|
process.once('exit', () => {
|
|
if (
|
|
|
|
// program.runningCommand &&
|
|
program.runningCommand.killed === false &&
|
|
program.runningCommand.exitCode === null
|
|
) {
|
|
program.runningCommand.kill('SIGINT');
|
|
}
|
|
});
|