1.6.14 • Published 6 years ago

@jackens/cli v1.6.14

Weekly downloads
-
License
ISC
Repository
github
Last release
6 years ago

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', // non-config key
  theAnswerToLifeTheUniverseAndEverything: 42, // another non-config key
  helpPrefix: '\nUsage: app [options]\n\nOptions:\n', // optional help message prefix
  helpSuffix: null, // optional help message suffix
  args: process.argv.slice(2), // default args source to parse
  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', // will be removed
    short: 'foobar', // will be converted to ‘f’
    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
1.6.14

6 years ago

1.6.11

6 years ago

1.5.24

6 years ago

1.5.23

6 years ago

1.5.22

6 years ago

1.5.21

6 years ago