diff options
author | LinuxWizard42 <computerwizard@linuxmail.org> | 2022-10-12 22:54:37 +0300 |
---|---|---|
committer | LinuxWizard42 <computerwizard@linuxmail.org> | 2022-10-12 22:54:37 +0300 |
commit | 703e03aba33f234712206769f57717ba7d92d23d (patch) | |
tree | 0041f04ccb75bd5379c764e9fe42249fffe75fc3 /node_modules/meow/index.js | |
parent | ab6e257e6e9d9a483d7e86f220d8b209a2cd7753 (diff) | |
download | FlashRunner-703e03aba33f234712206769f57717ba7d92d23d.tar.gz FlashRunner-703e03aba33f234712206769f57717ba7d92d23d.tar.zst |
Added export_allowed file to make repository visible in cgit
Diffstat (limited to 'node_modules/meow/index.js')
-rw-r--r-- | node_modules/meow/index.js | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/node_modules/meow/index.js b/node_modules/meow/index.js new file mode 100644 index 0000000..d7ab879 --- /dev/null +++ b/node_modules/meow/index.js @@ -0,0 +1,82 @@ +'use strict'; +var path = require('path'); +var minimist = require('minimist'); +var objectAssign = require('object-assign'); +var camelcaseKeys = require('camelcase-keys'); +var decamelize = require('decamelize'); +var mapObj = require('map-obj'); +var trimNewlines = require('trim-newlines'); +var redent = require('redent'); +var readPkgUp = require('read-pkg-up'); +var loudRejection = require('loud-rejection'); +var normalizePackageData = require('normalize-package-data'); + +// get the uncached parent +delete require.cache[__filename]; +var parentDir = path.dirname(module.parent.filename); + +module.exports = function (opts, minimistOpts) { + loudRejection(); + + if (Array.isArray(opts) || typeof opts === 'string') { + opts = {help: opts}; + } + + opts = objectAssign({ + pkg: readPkgUp.sync({ + cwd: parentDir, + normalize: false + }).pkg, + argv: process.argv.slice(2) + }, opts); + + minimistOpts = objectAssign({}, minimistOpts); + + minimistOpts.default = mapObj(minimistOpts.default || {}, function (key, value) { + return [decamelize(key, '-'), value]; + }); + + if (Array.isArray(opts.help)) { + opts.help = opts.help.join('\n'); + } + + var pkg = typeof opts.pkg === 'string' ? require(path.join(parentDir, opts.pkg)) : opts.pkg; + var argv = minimist(opts.argv, minimistOpts); + var help = redent(trimNewlines(opts.help || ''), 2); + + normalizePackageData(pkg); + + process.title = pkg.bin ? Object.keys(pkg.bin)[0] : pkg.name; + + var description = opts.description; + if (!description && description !== false) { + description = pkg.description; + } + + help = (description ? '\n ' + description + '\n' : '') + (help ? '\n' + help : '\n'); + + var showHelp = function (code) { + console.log(help); + process.exit(code || 0); + }; + + if (argv.version && opts.version !== false) { + console.log(typeof opts.version === 'string' ? opts.version : pkg.version); + process.exit(); + } + + if (argv.help && opts.help !== false) { + showHelp(); + } + + var _ = argv._; + delete argv._; + + return { + input: _, + flags: camelcaseKeys(argv), + pkg: pkg, + help: help, + showHelp: showHelp + }; +}; |