You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.2 KiB

#!/usr/bin/env node
'use strict';
var _minimist = require('minimist');
var _minimist2 = _interopRequireDefault(_minimist);
var _shx = require('./shx');
var _config = require('./config');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var parsedArgs = (0, _minimist2.default)(process.argv.slice(2), { stopEarly: true, boolean: true });
// `input` is null if we're running from a TTY, or a string of all stdin if
// running from the right-hand side of a pipe
var run = function run(input) {
// Pass stdin to shx as the 'this' parameter
process.exitCode = _shx.shx.call(input, process.argv);
// We use process.exitCode to ensure we don't terminate the process before
// streams finish. See:
// https://github.com/shelljs/shx/issues/85
};
// ShellJS doesn't support input streams, so we have to collect all input first
if ((0, _config.shouldReadStdin)(parsedArgs._)) {
// Read all stdin first, and then pass that onto ShellJS
var chunks = [];
process.stdin.on('data', function (data) {
return chunks.push(data);
});
process.stdin.on('end', function () {
return run(chunks.join(''));
});
} else {
// There's no stdin, so we can immediately invoke the ShellJS function
run(null);
}