Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/brechtcs/stdarg
Parse and validate CLI arguments
https://github.com/brechtcs/stdarg
Last synced: about 10 hours ago
JSON representation
Parse and validate CLI arguments
- Host: GitHub
- URL: https://github.com/brechtcs/stdarg
- Owner: brechtcs
- License: apache-2.0
- Created: 2019-11-22T19:34:51.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2020-05-16T13:51:41.000Z (over 4 years ago)
- Last Synced: 2024-10-11T07:58:27.001Z (about 1 month ago)
- Language: JavaScript
- Homepage:
- Size: 16.6 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# stdarg
Parse and validate CLI arguments
## Usage
A basic command looks like this:
```js
// cmd.jsvar Args = require('stdarg')
var number = require('stdopt/builtin/number')
var string = require('stdarg/string')var command = new Args()
command.use(['port', 'p'], 'Server port', number)
command.use(['message', '-m'], 'Welcome message', string)
command.use(['log', 'l'], 'Toggle logging')var argv = process.argv.slice(2)
var opts = command.parse(argv)
console.log('Parsed options: ' + JSON.stringify(opts))
console.log('Remaining argv: ' + argv.join(', '))
```You can invoke it like so:
```
$ node cmd.js argument --message "Hello, world" some more
Parsed options: {"message": "Hello, world"}
Remaining argv: argument, some, more$ node cmd.js --port 80 --log some more arguments
Parsed options: {"port": 80, "log": true}
Remaining argv: some, more, arguments$ node cmd.js -lp 80 some more arguments
Parsed options: {"port": 80, "log": true}
Remaining argv: some, more, arguments$ node cmd.js --port stuff
Error: stuff is an invalid value for --port$ node cmd.js --message
Error: undefined is an invalid value for --message
```### Help
You can also generate `help` output based on the configured options. Given the command above, you can add this as follows:
```js
args.use(['help', 'h'], 'Get help')var argv = process argv.slice(2)
var opts = args.parse(argv)if (opts.help) {
args.help().forEach(line => console.log(line))
}
```Invoking this gives the following output:
```
$ node cmd.js --help
--port, -p Server port
--message, -m Welcome message
--log, -l Toggle logging
--help, -h Get help
```## License
Apache-2.0