wishthis/node_modules/nopt/bin/nopt.js

57 lines
1.2 KiB
JavaScript
Raw Normal View History

2022-01-21 08:28:41 +00:00
#!/usr/bin/env node
2022-08-31 14:34:36 +00:00
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)
2022-01-21 08:28:41 +00:00
2022-08-31 14:34:36 +00:00
console.log('parsed', parsed)
2022-01-21 08:28:41 +00:00
if (parsed.help) {
2022-08-31 14:34:36 +00:00
console.log('')
console.log('nopt cli tester')
console.log('')
console.log('types')
2022-01-21 08:28:41 +00:00
console.log(Object.keys(types).map(function M (t) {
var type = types[t]
if (Array.isArray(type)) {
2022-08-31 14:34:36 +00:00
return [t, type.map(function (mappedType) {
return mappedType.name
})]
2022-01-21 08:28:41 +00:00
}
return [t, type && type.name]
}).reduce(function (s, i) {
s[i[0]] = i[1]
return s
}, {}))
2022-08-31 14:34:36 +00:00
console.log('')
console.log('shorthands')
2022-01-21 08:28:41 +00:00
console.log(shorthands)
}