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.
56 lines
1.2 KiB
56 lines
1.2 KiB
#!/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) |
|
}
|
|
|