dis-dat
Version:
Run commands in parallel (dad / dis-and-dat) or sequentially (dtd / dis-then-dat)
115 lines • 4.87 kB
JavaScript
;
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; }