https://github.com/morganconrad/gnucl
Brain-dead simple GNU style command line argument parser
https://github.com/morganconrad/gnucl
argument-parser command-line gnu
Last synced: 8 months ago
JSON representation
Brain-dead simple GNU style command line argument parser
- Host: GitHub
- URL: https://github.com/morganconrad/gnucl
- Owner: MorganConrad
- License: mit
- Created: 2018-01-09T23:08:40.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2020-02-04T17:54:38.000Z (over 6 years ago)
- Last Synced: 2025-01-11T14:45:47.898Z (over 1 year ago)
- Topics: argument-parser, command-line, gnu
- Language: JavaScript
- Homepage:
- Size: 4.88 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](http://travis-ci.org/MorganConrad/gnucl)
[](https://github.com/MorganConrad/gnucl)
[](https://www.npmjs.org/package/gnucl)
[](https://snyk.io/test/github/morganconrad/gnucl)
[](https://coveralls.io/github/MorganConrad/gnucl)
# gnucl
Brain-dead simple GNU style command line argument parser
### Installation
`$ npm install MorganConrad/gnucl`
### Option parsing
```js
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
```
### Example
```js
$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.
### Changelog
#### Changes / Improvements in v0.2.0
1) If an option is **repeated**, it will be added to an **array**.
2) an option may contain an = on the right side, e.g. --test=a=b
```js
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"] }
```