UNPKG

jsii-release

Version:

Release jsii modules to multiple package managers

76 lines 6.94 kB
"use strict"; 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=