Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80684 views
1
#!/usr/bin/env node
2
var nopt = require("../lib/nopt")
3
, path = require("path")
4
, types = { num: Number
5
, bool: Boolean
6
, help: Boolean
7
, list: Array
8
, "num-list": [Number, Array]
9
, "str-list": [String, Array]
10
, "bool-list": [Boolean, Array]
11
, str: String
12
, clear: Boolean
13
, config: Boolean
14
, length: Number
15
, file: path
16
}
17
, shorthands = { s: [ "--str", "astring" ]
18
, b: [ "--bool" ]
19
, nb: [ "--no-bool" ]
20
, tft: [ "--bool-list", "--no-bool-list", "--bool-list", "true" ]
21
, "?": ["--help"]
22
, h: ["--help"]
23
, H: ["--help"]
24
, n: [ "--num", "125" ]
25
, c: ["--config"]
26
, l: ["--length"]
27
, f: ["--file"]
28
}
29
, parsed = nopt( types
30
, shorthands
31
, process.argv
32
, 2 )
33
34
console.log("parsed", parsed)
35
36
if (parsed.help) {
37
console.log("")
38
console.log("nopt cli tester")
39
console.log("")
40
console.log("types")
41
console.log(Object.keys(types).map(function M (t) {
42
var type = types[t]
43
if (Array.isArray(type)) {
44
return [t, type.map(function (type) { return type.name })]
45
}
46
return [t, type && type.name]
47
}).reduce(function (s, i) {
48
s[i[0]] = i[1]
49
return s
50
}, {}))
51
console.log("")
52
console.log("shorthands")
53
console.log(shorthands)
54
}
55
56