prg (program)
A simplified, promise-style CLI utility for programs written in nodejs.
Initial 0.1.0 is underdocumented but functional; you'll have to dig through the tests for an accurate picture of its use.
Istanbul coverage report says:
=============================== Coverage summary ===============================Statements : 74.19% ( 161/217 )Branches : 51.14% ( 45/88 )Functions : 75% ( 18/24 )Lines : 74.42% ( 160/215 )================================================================================
... so there is a little ways to go yet.
Install
npm install prg
Use
es5
var program = ;
es6
;
Example
#!/usr/bin/env node 'use strict'; let prg = ;let pkg = ;let validate = ;let Service = ; let stderr = consoleerror; // Specify the arguments we expect, ours are specified in the package...let spec = pkgconfigoptions; // Always provide your package, it is used to gen help/usage.prg // The spec also contributes to help/usage -- but it is optional. // This simple example only runs a 'main' function/command; // args are parsed from the command line and prepared in an // options object according to your spec. ;
Specs
Specs are important to prg
because they convey what is expected when parsing the command line arguments.
argv
– a long-form command line parameter such as--docker-tls-path
def
– contains the option's default value.env
– the name of an environement variable that supplies the option; e.g.DOCKER_TLS_PATH
.flag
– indicates whether the option is a flag.ptr
– a JSON Pointer indicating the location on theoptions
object where the value should reside such as/docker/tls/path
.required
– indicates whether the option is required.validate
– the name of a built-in or user-supplied validation function.