38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
const { build } = require('gluegun');
|
|
|
|
/**
|
|
* Create the cli and kick it off
|
|
*/
|
|
async function run(argv) {
|
|
// create a CLI runtime
|
|
const cli = build()
|
|
.brand('pwcli')
|
|
.src(__dirname)
|
|
.plugins('./node_modules', { matching: 'pwcli-*', hidden: true })
|
|
.plugin(__dirname + '/../node_modules/@lenne.tech/gluegun-menu/dist', {
|
|
commandFilePattern: '*.js',
|
|
extensionFilePattern: '*.js'
|
|
})
|
|
.help({
|
|
name: 'help',
|
|
alias: 'h',
|
|
hidden: false,
|
|
dashed: true,
|
|
run: toolbox => {
|
|
toolbox.print.info('This is the help');
|
|
}
|
|
}) // provides default for help, h, --help, -h
|
|
// .version() // provides default for version, v, --version, -v
|
|
.create();
|
|
// enable the following method if you'd like to skip loading one of these core extensions
|
|
// this can improve performance if they're not necessary for your project:
|
|
// .exclude(['meta', 'strings', 'print', 'filesystem', 'semver', 'system', 'prompt', 'http', 'template', 'patching', 'package-manager'])
|
|
// and run it
|
|
const toolbox = await cli.run(argv);
|
|
|
|
// send it back (for testing, mostly)
|
|
return toolbox;
|
|
}
|
|
|
|
module.exports = { run };
|