Open
Description
var minimist = require('minimist')
var merge = require('mixin-deep')
module.exports = function minibaseArgv (opts) {
return function (app) {
app.define('parseArgv', function (opts) {
var argv = minimist(process.argv.slice(2), merge({
alias: { h: 'help', v: 'version' }
}, opts))
var keys = Object.keys(argv)
app.argv = argv
if (!argv._.length && keys.length === 1) {
argv.__ = argv.__ || {}
argv.__.isCommand = true
argv.__.isFlag = true
app.emit('help', null, argv)
return app
}
app.emit('_', argv._)
app.emit('*', '_', argv._)
argv._.forEach(function (key, idx) {
argv.__ = argv.__ || {}
argv.__.isCommand = true
app.emit(key, idx, argv)
app.emit(idx, key, argv)
})
keys.forEach(function (key) {
if (key === '_') return
var val = argv[key]
argv.__ = argv.__ || {}
argv.__.isFlag = true
app.emit(key, val, argv)
app.emit('*', key, val)
})
return app
})
}
}
attr to minimist-events
Metadata
Metadata
Assignees
Labels
No labels