UNPKG

dis-dat

Version:

Run commands in parallel (dad / dis-and-dat) or sequentially (dtd / dis-then-dat)

115 lines 4.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); var _exitcompat = /*#__PURE__*/ _interop_require_default(require("exit-compat")); var _fs = require("fs"); var _getoptscompat = /*#__PURE__*/ _interop_require_default(require("getopts-compat")); var _path = /*#__PURE__*/ _interop_require_default(require("path")); var _spawnterm = require("spawn-term"); var _url = /*#__PURE__*/ _interop_require_default(require("url")); var _indexts = /*#__PURE__*/ _interop_require_default(require("./index.js")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var ERROR_CODE = 3; var __dirname = _path.default.dirname(typeof __filename !== 'undefined' ? __filename : _url.default.fileURLToPath(require("url").pathToFileURL(__filename).toString())); function getVersion() { var pkgPath = _path.default.join(__dirname, '..', '..', 'package.json'); return JSON.parse((0, _fs.readFileSync)(pkgPath, 'utf8')).version; } function printHelp(name) { var version = getVersion(); console.log("".concat(name, " v").concat(version)); console.log(''); console.log(name === 'dad' ? 'Run commands in parallel (dis-and-dat)' : 'Run commands sequentially (dis-then-dat)'); console.log(''); console.log("Usage: ".concat(name, ' [options] "[command1]" "[command2]" "[command3]"...')); console.log(''); console.log('Options:'); console.log(' -v, --version Show version number'); console.log(' -h, --help Show help'); console.log(' -si, --silent Suppress output summary'); console.log(' -c, --concurrency Number of concurrent commands (default: Infinity for dad, 1 for dtd)'); console.log(' -e, --expanded Show expanded command output'); console.log(' -s, --streaming Stream output in real-time'); console.log(''); console.log('Examples:'); console.log(" ".concat(name, ' "npm run build" "npm run test"')); console.log(" ".concat(name, ' --streaming "echo hello" "echo world"')); } var _default = function(argv, name) { var options = (0, _getoptscompat.default)(argv, { alias: { silent: 'si', concurrency: 'c', expanded: 'e', streaming: 's', version: 'v', help: 'h' }, boolean: [ 'silent', 'expanded', 'streaming', 'version', 'help' ], default: { concurrency: name === 'dtd' ? 1 : Infinity }, stopEarly: true }); if (options.version) { console.log(getVersion()); (0, _exitcompat.default)(0); return; } if (options.help) { printHelp(name); (0, _exitcompat.default)(0); return; } var args = options._; if (!args.length) { console.log("Missing command. Example usage: ".concat(name, ' "[command1]" "[command2]" "[command3]"...')); (0, _exitcompat.default)(ERROR_CODE); return; } options.stdio = 'inherit'; // pass through stdio (0, _indexts.default)(args, options, function(err, results) { if (err && !err.results) { console.log(err.message); (0, _exitcompat.default)(ERROR_CODE); return; } if (err) results = err.results; var errors = results.filter(function(result) { return !!result.error; }); if (!options.silent) { if (!_spawnterm.createSession) { console.log('\n======================'); results.forEach(function(res) { console.log("".concat(res.error ? _spawnterm.figures.cross : _spawnterm.figures.tick, " ").concat((0, _spawnterm.formatArguments)([ res.command ].concat(res.args))).concat(res.error ? " Error: ".concat(res.error.message) : '')); }); console.log('\n----------------------'); console.log("".concat(name, " ").concat((0, _spawnterm.formatArguments)(args).join(' '))); console.log("".concat(_spawnterm.figures.tick, " ").concat(results.length - errors.length, " succeeded")); if (errors.length) console.log("".concat(_spawnterm.figures.cross, " ").concat(errors.length, " failed")); } } (0, _exitcompat.default)(err || errors.length ? ERROR_CODE : 0); }); }; /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }