You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.5 KiB
54 lines
1.5 KiB
#!/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) |
|
}
|
|
|