jsii-release
Version:
Release jsii modules to multiple package managers
76 lines • 6.94 kB
JavaScript
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.which = exports.run = void 0;
const child = __importStar(require("child_process"));
const shlex = __importStar(require("shlex"));
/**
* Run a shell command and return the output.
* Throws if the command fails.
*
* @param command command (e.g 'git commit -m')
*/
function run(command, options = {}) {
var _a, _b, _c;
const shsplit = shlex.split(command);
const pipeOrInherit = ((_a = options.capture) !== null && _a !== void 0 ? _a : false) ? 'pipe' : 'inherit';
const env = { ...process.env, ...options.modEnv };
const result = child.spawnSync(shsplit[0], shsplit.slice(1), {
stdio: ['ignore', pipeOrInherit, pipeOrInherit],
cwd: options.cwd,
shell: options.shell,
env,
});
if (result.error) {
throw result.error;
}
const stdout = (_b = result.stdout) === null || _b === void 0 ? void 0 : _b.toString();
const stderr = (_c = result.stderr) === null || _c === void 0 ? void 0 : _c.toString();
if (result.status !== 0) {
const message = `
Command failed: ${command}.
Output: ${stdout}
Error: ${stderr}`;
throw new Error(message);
}
return stdout;
}
exports.run = run;
/**
* Return the path under which a program is available.
* Empty string if the program is not installed.
*
* @param program program to check (e.g 'git')
*/
function which(program) {
try {
return run(`which ${program}`, { capture: true });
}
catch (err) {
return '';
}
}
exports.which = which;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscC9zaGVsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUF1QztBQUN2Qyw2Q0FBK0I7QUFrQy9COzs7OztHQUtHO0FBQ0gsU0FBZ0IsR0FBRyxDQUFDLE9BQWUsRUFBRSxVQUFzQixFQUFFOztJQUMzRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sYUFBYSxHQUFHLENBQUMsTUFBQSxPQUFPLENBQUMsT0FBTyxtQ0FBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDckUsTUFBTSxHQUFHLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUMzRCxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQztRQUMvQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7UUFDaEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQ3BCLEdBQUc7S0FDSixDQUFDLENBQUM7SUFDSCxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUU7UUFDaEIsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDO0tBQ3BCO0lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBQSxNQUFNLENBQUMsTUFBTSwwQ0FBRSxRQUFRLEVBQUUsQ0FBQztJQUN6QyxNQUFNLE1BQU0sR0FBRyxNQUFBLE1BQU0sQ0FBQyxNQUFNLDBDQUFFLFFBQVEsRUFBRSxDQUFDO0lBRXpDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDdkIsTUFBTSxPQUFPLEdBQUc7c0JBQ0UsT0FBTztnQkFDYixNQUFNO2VBQ1AsTUFBTSxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUMxQjtJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUF6QkQsa0JBeUJDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixLQUFLLENBQUMsT0FBZTtJQUNuQyxJQUFJO1FBQ0YsT0FBTyxHQUFHLENBQUMsU0FBUyxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQ25EO0lBQUMsT0FBTyxHQUFHLEVBQUU7UUFDWixPQUFPLEVBQUUsQ0FBQztLQUNYO0FBQ0gsQ0FBQztBQU5ELHNCQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2hpbGQgZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBzaGxleCBmcm9tICdzaGxleCc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGBydW5gIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bk9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBXb2tyaW5nIGRpcmVjdG9yeS5cbiAgICpcbiAgICogQGRlZmF1bHQgcHJvY2Vzcy5jd2QoKVxuICAgKi9cbiAgcmVhZG9ubHkgY3dkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDYXB0dXJlIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQgYW5kIHJldHVybiB0byBjYWxsZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY2FwdHVyZSwgb3V0cHV0IGlzIHByaW50ZWQgdG8gc3Rkb3V0LlxuICAgKi9cbiAgcmVhZG9ubHkgY2FwdHVyZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJ1biB0aGUgY29tbWFuZCBpbnNpZGUgYSBzaGVsbC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNoZWxsPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJvcGVydGllcyB0byBhZGQgdG8gJ2VudidcbiAgICovXG4gIHJlYWRvbmx5IG1vZEVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbi8qKlxuICogUnVuIGEgc2hlbGwgY29tbWFuZCBhbmQgcmV0dXJuIHRoZSBvdXRwdXQuXG4gKiBUaHJvd3MgaWYgdGhlIGNvbW1hbmQgZmFpbHMuXG4gKlxuICogQHBhcmFtIGNvbW1hbmQgY29tbWFuZCAoZS5nICdnaXQgY29tbWl0IC1tJylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bihjb21tYW5kOiBzdHJpbmcsIG9wdGlvbnM6IFJ1bk9wdGlvbnMgPSB7fSk6IHN0cmluZyB7XG4gIGNvbnN0IHNoc3BsaXQgPSBzaGxleC5zcGxpdChjb21tYW5kKTtcbiAgY29uc3QgcGlwZU9ySW5oZXJpdCA9IChvcHRpb25zLmNhcHR1cmUgPz8gZmFsc2UpID8gJ3BpcGUnOiAnaW5oZXJpdCc7XG4gIGNvbnN0IGVudiA9IHsgLi4ucHJvY2Vzcy5lbnYsIC4uLm9wdGlvbnMubW9kRW52IH07XG4gIGNvbnN0IHJlc3VsdCA9IGNoaWxkLnNwYXduU3luYyhzaHNwbGl0WzBdLCBzaHNwbGl0LnNsaWNlKDEpLCB7XG4gICAgc3RkaW86IFsnaWdub3JlJywgcGlwZU9ySW5oZXJpdCwgcGlwZU9ySW5oZXJpdF0sXG4gICAgY3dkOiBvcHRpb25zLmN3ZCxcbiAgICBzaGVsbDogb3B0aW9ucy5zaGVsbCxcbiAgICBlbnYsXG4gIH0pO1xuICBpZiAocmVzdWx0LmVycm9yKSB7XG4gICAgdGhyb3cgcmVzdWx0LmVycm9yO1xuICB9XG5cbiAgY29uc3Qgc3Rkb3V0ID0gcmVzdWx0LnN0ZG91dD8udG9TdHJpbmcoKTtcbiAgY29uc3Qgc3RkZXJyID0gcmVzdWx0LnN0ZGVycj8udG9TdHJpbmcoKTtcblxuICBpZiAocmVzdWx0LnN0YXR1cyAhPT0gMCkge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBgXG4gICAgQ29tbWFuZCBmYWlsZWQ6ICR7Y29tbWFuZH0uXG4gICAgICBPdXRwdXQ6ICR7c3Rkb3V0fVxuICAgICAgRXJyb3I6ICR7c3RkZXJyfWA7XG4gICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICB9XG4gIHJldHVybiBzdGRvdXQ7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBwYXRoIHVuZGVyIHdoaWNoIGEgcHJvZ3JhbSBpcyBhdmFpbGFibGUuXG4gKiBFbXB0eSBzdHJpbmcgaWYgdGhlIHByb2dyYW0gaXMgbm90IGluc3RhbGxlZC5cbiAqXG4gKiBAcGFyYW0gcHJvZ3JhbSBwcm9ncmFtIHRvIGNoZWNrIChlLmcgJ2dpdCcpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aGljaChwcm9ncmFtOiBzdHJpbmcpOiBzdHJpbmcge1xuICB0cnkge1xuICAgIHJldHVybiBydW4oYHdoaWNoICR7cHJvZ3JhbX1gLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJldHVybiAnJztcbiAgfVxufVxuXG4iXX0=
;