mirror of
https://github.com/wassname/talk.git
synced 2026-06-28 03:51:45 +08:00
43 lines
1.2 KiB
JavaScript
Executable File
43 lines
1.2 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
/**
|
|
* Module dependencies.
|
|
*/
|
|
|
|
require('./util');
|
|
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(
|
|
'plugins',
|
|
'provides utilities for interacting with the plugin system'
|
|
)
|
|
.parse(process.argv);
|
|
|
|
// If the command wasn't found, output help.
|
|
const commands = map(program.commands, '_name');
|
|
const command = head(program.args);
|
|
if (!commands.includes(command)) {
|
|
const m = new Matcher(commands);
|
|
const similarCommands = m.list(command);
|
|
|
|
console.error(
|
|
`cli '${command}' is not a talk cli command. See 'cli --help'.`
|
|
);
|
|
if (similarCommands.length > 0) {
|
|
const sc = similarCommands.map(({ value }) => `\t${value}\n`).join('');
|
|
console.error(`\nThe most similar commands are\n${sc}`);
|
|
}
|
|
process.exit(1);
|
|
}
|