forked from tj/commander.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
options-extra.js
29 lines (23 loc) · 1.26 KB
/
options-extra.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/env node
// This is used as an example in the README for extra option features.
// See also options-env.js for more extensive env examples,
// and options-conflicts.js for more details about .conflicts().
// const { Command, Option } = require('commander'); // (normal include)
const { Command, Option } = require('../'); // include commander in git clone of commander repo
const program = new Command();
program
.addOption(new Option('-s, --secret').hideHelp())
.addOption(new Option('-t, --timeout <delay>', 'timeout in seconds').default(60, 'one minute'))
.addOption(new Option('-d, --drink <size>', 'drink cup size').choices(['small', 'medium', 'large']))
.addOption(new Option('-p, --port <number>', 'port number').env('PORT'))
.addOption(new Option('--donate [amount]', 'optional donation in dollars').preset('20').argParser(parseFloat))
.addOption(new Option('--disable-server', 'disables the server').conflicts('port'));
program.parse();
console.log('Options: ', program.opts());
// Try the following:
// node options-extra.js --help
// node options-extra.js --drink huge
// PORT=80 node options-extra.js
// node options-extra.js --donate
// node options-extra.js --donate 30.50
// node options-extra.js --disable-server --port 8000