cli
‘cli’ is lightweight command-line helper.
Works in both Node.js and the browser ;)
Install
NPM
npm install @jackens/cli
CDN
<script type="text/javascript" src="https://cdn.rawgit.com/jackens/cli/master/cli.js"></script>
or
<script type="text/javascript" src="https://cdn.rawgit.com/jackens/cli/master/cli.min.js"></script>
or
<script type="text/javascript" src="https://unpkg.com/@jackens/cli/cli.js"></script>
or
<script type="text/javascript" src="https://unpkg.com/@jackens/cli/cli.min.js"></script>
Usage
#!/usr/bin/env node
var cli = require('@jackens/cli')
var app = cli({
versionNumber: '1.2.3',
theAnswerToLifeTheUniverseAndEverything: 42,
helpPrefix: '\nUsage: app [options]\n\nOptions:\n',
helpSuffix: null,
args: process.argv.slice(2),
options: [{
required: true,
long: 'integer',
short: 'i',
param: 'int',
info: 'specify option with integer param',
regexp: /^\d+$/
}, {
long: 'boolean',
short: 'b',
param: 'bool',
info: 'specify option with boolean param',
regexp: /^(true|false)$/i
}, {
long: 'path',
param: 'path',
info: 'specify path'
}, {
long: 'f',
short: 'foobar',
info: '‘f’ as ‘foobar’'
}, {
long: 'version',
short: 'v',
info: 'print app version number and exit'
}, {
long: 'help',
short: 'h',
info: 'print usage information and exit'
}],
requiredInfoPrefix: '[REQUIRED] ',
requiredInfoSuffix: ' [REQUIRED]'
})
if (app.optionsMap.version.value) {
console.log(app.versionNumber)
} else if (app.optionsMap.help.value ||
app.invalidArgs.length ||
app.invalidOptionArgs.length ||
app.invalidParamArgs.length ||
app.invalidParamOptions.length ||
app.missingRequiredOptions.length) {
console.log(app.help)
console.log('invalidArgs', app.invalidArgs)
console.log('invalidOptionArgs', app.invalidOptionArgs)
console.log('invalidParamArgs', app.invalidParamArgs)
console.log('invalidParamOptions', app.invalidParamOptions)
console.log('missingRequiredOptions', app.missingRequiredOptions)
} else {
console.log(app.optionsMap)
}
Output of console.log(app.help)
:
Usage: app [options]
Options:
-i, --integer <int> [REQUIRED] specify option with integer param [REQUIRED]
-b, --boolean <bool> specify option with boolean param
--path <path> specify path
-f ‘f’ as ‘foobar’
-v, --version print app version number and exit
-h, --help print usage information and exit