diff --git a/src/templates/node-commander.handlebars b/src/templates/node-commander.handlebars new file mode 100644 index 0000000..0d99f96 --- /dev/null +++ b/src/templates/node-commander.handlebars @@ -0,0 +1,35 @@ +#!/usr/bin/env node + +import { Command } from 'commander'; + +const program = new Command(); + +program + .name('{{spec.name}}') + .description('{{spec.description}}') + .version('{{spec.version}}'); + +{{#each spec.commands}} +program + .command('{{name}}') + .description('{{escape description}}') + {{#each arguments}} + .argument('<{{name}}>'{{#if description}}, '{{escape description}}'{{/if}}) + {{/each}} + {{#each options}} + .option('--{{name}}{{#if short}} -{{short}}{{/if}}', '{{escape description}}'{{#if default}}, '{{defaultValue}}'{{/if}}) + {{/each}} + .action(({{#each arguments}}{{name}}, {{/each}}options) => { + console.log('Running {{name}} command'); + {{#each arguments}} + console.log('{{name}}:', {{name}}); + {{/each}} + {{#each options}} + if (options.{{camelCase name}}) { + console.log('{{name}}:', options.{{camelCase name}}); + } + {{/each}} + }); +{{/each}} + +program.parse();