0.3.0 • Published 6 years ago

getopt-long v0.3.0

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

NAME

getopt-long - Extended processing of command line options with automatic help

SYNOPSIS

const {getOpts} = require('..');

const cliOpts = {

  shortHandFlag: 'f',

  shortHandProperty: 'short-hand-property|p=s',

  someFile: {
    long: 'some-file',
    short: 's',
    type: 'string',
    description: 'Name of some file',
    parameter: 'FILE',
  },

  count: {
    long: 'count',
    type: 'number',
  },

  someOptionalSetting: {
    short: 'o',
    description: 'Enable some optional setting',
  },

  someAdditionalSetting: {
    short: 'O',
    description: 'Enable some additional setting, and also some optional setting',
    implies: {
      someOptionalSetting: true,
    }
  },

  extraProperties: {
    long: 'extra-properties',
    type: 'string',
    multi: true,
    description: 'Pass additional options, can be passed multiple times',
  },

  requiredProperty: {
    long: 'required-property',
    type: 'string',
    description: 'This option is required, and will throw an error if missing',
    required: 'This field will be the error message',
  },

  help: {
    usage: 'script [OPTS...] ARGUMENTS...',
    body: function() {
      console.log('The --help option is automatically created. Additional usage and body properties can be set');
      console.log(`This prints after the options list. The body property can also be a string`);
    }
  },
};

let opts;
try {
  opts = getOpts(cliOpts, process.argv);
}
catch (err) {
  console.error(err.message);
  process.exit(1);
}

console.dir(opts);
$ script firstArg -fs fileName -p prop --count 42 secondArg --extra-properties two -O --extra-properties one --required-property token thirdArgg
{ bin: '/Users/djenk9/.nvm/versions/node/v6.10.3/bin/node',
  file: '/Users/djenk9/Projects/JavaScript/Node/getopt-long/test/example.js',
  opts:
   { shortHandFlag: true,
     someFile: 'fileName',
     shortHandProperty: 'prop',
     count: 42,
     extraProperties: [ 'two', 'one' ],
     someOptionalSetting: true,
     someAdditionalSetting: true,
     requiredProperty: 'token' },
  args: [ 'firstArg', 'secondArg', 'thirdArgg' ] }
$ script --help
Usage: script [OPTS...] ARGUMENTS...

-f                            shortHandFlag
-p, --short-hand STRING       shortHandProperty
-s, --some-file FILE          Name of some file
--count NUMBER                count
-o                            Enable some optional setting
-O                            Enable some additional setting, and also some optional setting
--extra-properties STRING     Pass additional options, can be passed multiple times
--required-property STRING    REQUIRED: This option is required, and will throw an error if missing
--help                        Print this help menu and exit

The --help option is automatically created. Additional usage and body properties can be set
This prints after the options list. The body property can also be a string
0.3.0

6 years ago

0.2.3

6 years ago

0.2.2

6 years ago

0.2.1

6 years ago

0.2.0

6 years ago

0.1.13

6 years ago

0.1.12

6 years ago

0.1.11

6 years ago

0.1.10

6 years ago

0.1.9

6 years ago

0.1.8

6 years ago

0.1.7

6 years ago

0.1.6

6 years ago

0.1.4

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago