forked from tj/commander.js
-
Notifications
You must be signed in to change notification settings - Fork 1
/
options-negatable.js
executable file
·27 lines (21 loc) · 1.03 KB
/
options-negatable.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
#!/usr/bin/env node
// This is used as an example in the README for:
// Other option types, negatable boolean
// You can specify a boolean option long name with a leading `no-` to make it true by default and able to be negated.
// const commander = require('commander'); // (normal include)
const commander = require('../'); // include commander in git clone of commander repo
const program = new commander.Command();
program
.option('--no-sauce', 'Remove sauce')
.option('--cheese <flavour>', 'cheese flavour', 'mozzarella')
.option('--no-cheese', 'plain with no cheese');
program.parse();
const options = program.opts();
const sauceStr = options.sauce ? 'sauce' : 'no sauce';
const cheeseStr = (options.cheese === false) ? 'no cheese' : `${options.cheese} cheese`;
console.log(`You ordered a pizza with ${sauceStr} and ${cheeseStr}`);
// Try the following:
// node options-negatable.js
// node options-negatable.js --sauce
// node options-negatable.js --cheese=blue
// node options-negatable.js --no-sauce --no-cheese