mirror of https://github.com/ColorlibHQ/gentelella
56 lines
1.3 KiB
JavaScript
56 lines
1.3 KiB
JavaScript
'use strict';
|
|
|
|
var utils = require('../utils');
|
|
|
|
module.exports = function(options) {
|
|
return function(app) {
|
|
|
|
this.define('argv', function(argv, commands, fn) {
|
|
var args = {};
|
|
args.argv = argv;
|
|
args.commands = [];
|
|
args.updaters = {};
|
|
|
|
args.flags = utils.expandArgs(utils.omit(argv, ['_', 'files']));
|
|
args.flagskeys = Object.keys(args.flags);
|
|
|
|
var files = argv.files ? utils.pick(argv, 'files') : null;
|
|
if (files) args.flags.files = files;
|
|
|
|
var arr = argv._;
|
|
var len = arr.length, i = -1;
|
|
|
|
while (++i < len) {
|
|
var key = arr[i];
|
|
|
|
if (/\W/.test(key)) {
|
|
var obj = utils.expand(key);
|
|
|
|
for (var prop in obj) {
|
|
if (obj.hasOwnProperty(prop)) {
|
|
var val = obj[prop];
|
|
utils.union(args, 'updaters.' + prop, val);
|
|
}
|
|
}
|
|
continue;
|
|
}
|
|
|
|
if (utils.contains(commands, key)) {
|
|
args.commands.push(key);
|
|
continue;
|
|
}
|
|
// fn(key, args);
|
|
var updaters = this.base.updaters;
|
|
if (key in updaters) {
|
|
utils.union(args, 'updaters.' + key, 'default');
|
|
|
|
} else if (key !== 'base') {
|
|
utils.union(args, 'updaters.base', key);
|
|
}
|
|
}
|
|
return args;
|
|
});
|
|
};
|
|
};
|
|
|