Brain-dead simple GNU style command line argument parser
$ npm install MorganConrad/gnucl
const gnucl = require('gnucl');
let parsed = gnucl(process.argv, numberToIgnoreDefaultsTo2);
// or
let {args, opts} = gnucl(process.argv);
...
parsed.opts = a map of the GNU-like options
parsed.args = an array of remaining arguments$node myProgram filename.txt --foo=bar --special anotherFilename.pdf
let parsed = gnucl(process.argv);
parsed.args = ['filename.txt', 'anotherFilename.pdf']
parsed.opts = { foo:"bar", special:true }By default, gnucl ignores the first two arguments. Pass a second argument to change.
- If an option is repeated, it will be added to an array.
- an option may contain an = on the right side, e.g. --test=a=b
node myProgram filename.txt --header=X-foo:foo --header=X-bar:bar --test=a=b anotherFilename.pdf'
let parsed = gnucl(process.argv);
parsed.args = ['filename.txt', 'anotherFilename.pdf']
parsed.opts = { test: "a=b", header: ["X-foo:foo", "X-bar:bar"] }