0.3.0 • Published 7 years ago
getopt-long v0.3.0
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