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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
| #!/usr/bin/env node
| var nopt = require('../lib/nopt')
| var path = require('path')
| var types = { num: Number,
| bool: Boolean,
| help: Boolean,
| list: Array,
| 'num-list': [Number, Array],
| 'str-list': [String, Array],
| 'bool-list': [Boolean, Array],
| str: String,
| clear: Boolean,
| config: Boolean,
| length: Number,
| file: path,
| }
| var shorthands = { s: ['--str', 'astring'],
| b: ['--bool'],
| nb: ['--no-bool'],
| tft: ['--bool-list', '--no-bool-list', '--bool-list', 'true'],
| '?': ['--help'],
| h: ['--help'],
| H: ['--help'],
| n: ['--num', '125'],
| c: ['--config'],
| l: ['--length'],
| f: ['--file'],
| }
| var parsed = nopt(types
| , shorthands
| , process.argv
| , 2)
|
| console.log('parsed', parsed)
|
| if (parsed.help) {
| console.log('')
| console.log('nopt cli tester')
| console.log('')
| console.log('types')
| console.log(Object.keys(types).map(function M (t) {
| var type = types[t]
| if (Array.isArray(type)) {
| return [t, type.map(function (mappedType) {
| return mappedType.name
| })]
| }
| return [t, type && type.name]
| }).reduce(function (s, i) {
| s[i[0]] = i[1]
| return s
| }, {}))
| console.log('')
| console.log('shorthands')
| console.log(shorthands)
| }
|
|