You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.5 KiB
JavaScript
55 lines
1.5 KiB
JavaScript
#!/usr/bin/env node
|
|
var nopt = require("../lib/nopt")
|
|
, path = require("path")
|
|
, 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
|
|
}
|
|
, 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"]
|
|
}
|
|
, 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 (type) { return type.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)
|
|
}
|