| Index: node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/node_modules/argparse/lib/action/subparsers.js
|
| diff --git a/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/node_modules/argparse/lib/action/subparsers.js b/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/node_modules/argparse/lib/action/subparsers.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..adecf654a96e7ca6b10e2abcecec67c41bf36a50
|
| --- /dev/null
|
| +++ b/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/node_modules/argparse/lib/action/subparsers.js
|
| @@ -0,0 +1,148 @@
|
| +/** internal
|
| + * class ActionSubparsers
|
| + *
|
| + * Support the creation of such sub-commands with the addSubparsers()
|
| + *
|
| + * This class inherited from [[Action]]
|
| + **/
|
| +'use strict';
|
| +
|
| +var util = require('util');
|
| +var format = require('util').format;
|
| +var _ = require('underscore');
|
| +
|
| +
|
| +var Action = require('../action');
|
| +
|
| +// Constants
|
| +var $$ = require('../const');
|
| +
|
| +// Errors
|
| +var argumentErrorHelper = require('../argument/error');
|
| +
|
| +
|
| +/*:nodoc:*
|
| + * new ChoicesPseudoAction(name, help)
|
| + *
|
| + * Create pseudo action for correct help text
|
| + *
|
| + **/
|
| +var ChoicesPseudoAction = function (name, help) {
|
| + var options = {
|
| + optionStrings: [],
|
| + dest: name,
|
| + help: help
|
| + };
|
| +
|
| + Action.call(this, options);
|
| +};
|
| +util.inherits(ChoicesPseudoAction, Action);
|
| +
|
| +/**
|
| + * new ActionSubparsers(options)
|
| + * - options (object): options hash see [[Action.new]]
|
| + *
|
| + **/
|
| +var ActionSubparsers = module.exports = function ActionSubparsers(options) {
|
| + options = options || {};
|
| + options.dest = options.dest || $$.SUPPRESS;
|
| + options.nargs = $$.PARSER;
|
| +
|
| + this.debug = (options.debug === true);
|
| +
|
| + this._progPrefix = options.prog;
|
| + this._parserClass = options.parserClass;
|
| + this._nameParserMap = {};
|
| + this._choicesActions = [];
|
| +
|
| + options.choices = this._nameParserMap;
|
| + Action.call(this, options);
|
| +};
|
| +util.inherits(ActionSubparsers, Action);
|
| +
|
| +/*:nodoc:*
|
| + * ActionSubparsers#addParser(name, options) -> ArgumentParser
|
| + * - name (string): sub-command name
|
| + * - options (object): see [[ArgumentParser.new]]
|
| + *
|
| + * Note:
|
| + * addParser supports an additional aliases option,
|
| + * which allows multiple strings to refer to the same subparser.
|
| + * This example, like svn, aliases co as a shorthand for checkout
|
| + *
|
| + **/
|
| +ActionSubparsers.prototype.addParser = function (name, options) {
|
| + var parser;
|
| +
|
| + var self = this;
|
| +
|
| + options = options || {};
|
| +
|
| + options.debug = (this.debug === true);
|
| +
|
| + // set program from the existing prefix
|
| + if (!options.prog) {
|
| + options.prog = this._progPrefix + ' ' + name;
|
| + }
|
| +
|
| + var aliases = options.aliases || [];
|
| +
|
| + // create a pseudo-action to hold the choice help
|
| + if (!!options.help || _.isString(options.help)) {
|
| + var help = options.help;
|
| + delete options.help;
|
| +
|
| + var choiceAction = new ChoicesPseudoAction(name, help);
|
| + this._choicesActions.push(choiceAction);
|
| + }
|
| +
|
| + // create the parser and add it to the map
|
| + parser = new this._parserClass(options);
|
| + this._nameParserMap[name] = parser;
|
| +
|
| + // make parser available under aliases also
|
| + aliases.forEach(function (alias) {
|
| + self._nameParserMap[alias] = parser;
|
| + });
|
| +
|
| + return parser;
|
| +};
|
| +
|
| +ActionSubparsers.prototype._getSubactions = function () {
|
| + return this._choicesActions;
|
| +};
|
| +
|
| +/*:nodoc:*
|
| + * ActionSubparsers#call(parser, namespace, values, optionString) -> Void
|
| + * - parser (ArgumentParser): current parser
|
| + * - namespace (Namespace): namespace for output data
|
| + * - values (Array): parsed values
|
| + * - optionString (Array): input option string(not parsed)
|
| + *
|
| + * Call the action. Parse input aguments
|
| + **/
|
| +ActionSubparsers.prototype.call = function (parser, namespace, values) {
|
| + var parserName = values[0];
|
| + var argStrings = values.slice(1);
|
| +
|
| + // set the parser name if requested
|
| + if (this.dest !== $$.SUPPRESS) {
|
| + namespace[this.dest] = parserName;
|
| + }
|
| +
|
| + // select the parser
|
| + if (!!this._nameParserMap[parserName]) {
|
| + parser = this._nameParserMap[parserName];
|
| + } else {
|
| + throw argumentErrorHelper(format(
|
| + 'Unknown parser "%s" (choices: [%s]).',
|
| + parserName,
|
| + _.keys(this._nameParserMap).join(', ')
|
| + ));
|
| + }
|
| +
|
| + // parse all the remaining options into the namespace
|
| + parser.parseArgs(argStrings, namespace);
|
| +};
|
| +
|
| +
|
|
|