UNPKG

jsii-release

Version:

Release jsii modules to multiple package managers

101 lines 8.42 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 () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.run = run; exports.check = check; exports.which = which; 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 = {}) { const shsplit = shlex.split(command); const pipeOrInherit = (options.capture ?? 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 = result.stdout?.toString(); const stderr = result.stderr?.toString(); if (result.status !== 0) { const message = ` Command failed: ${command}. Output: ${stdout} Error: ${stderr}`; throw new Error(message); } return stdout; } /** * Run a shell command and return a boolean indicating success or failure. * * Use this is when the result of the command informs a decision but is otherwise inconsequential. * * @param command command (e.g 'git ls-remote --exit-code') */ function check(command, options = {}) { try { run(command, options); return true; } catch (e) { return false; } } /** * 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 ''; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscC9zaGVsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXlDQSxrQkF5QkM7QUFTRCxzQkFPQztBQVFELHNCQU1DO0FBaEdELHFEQUF1QztBQUN2Qyw2Q0FBK0I7QUFrQy9COzs7OztHQUtHO0FBQ0gsU0FBZ0IsR0FBRyxDQUFDLE9BQWUsRUFBRSxVQUFzQixFQUFFO0lBQzNELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUEsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNyRSxNQUFNLEdBQUcsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzNELEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDO1FBQy9DLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztRQUNoQixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDcEIsR0FBRztLQUNKLENBQUMsQ0FBQztJQUNILElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pCLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUN6QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBRXpDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4QixNQUFNLE9BQU8sR0FBRztzQkFDRSxPQUFPO2dCQUNiLE1BQU07ZUFDUCxNQUFNLEVBQUUsQ0FBQztRQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsS0FBSyxDQUFDLE9BQWUsRUFBRSxVQUFzQixFQUFFO0lBQzdELElBQUksQ0FBQztRQUNILEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLEtBQUssQ0FBQyxPQUFlO0lBQ25DLElBQUksQ0FBQztRQUNILE9BQU8sR0FBRyxDQUFDLFNBQVMsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGlsZCBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCAqIGFzIHNobGV4IGZyb20gJ3NobGV4JztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgYHJ1bmAgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVuT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFdva3JpbmcgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBwcm9jZXNzLmN3ZCgpXG4gICAqL1xuICByZWFkb25seSBjd2Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENhcHR1cmUgdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZCBhbmQgcmV0dXJuIHRvIGNhbGxlci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjYXB0dXJlLCBvdXRwdXQgaXMgcHJpbnRlZCB0byBzdGRvdXQuXG4gICAqL1xuICByZWFkb25seSBjYXB0dXJlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUnVuIHRoZSBjb21tYW5kIGluc2lkZSBhIHNoZWxsLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc2hlbGw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIHRvIGFkZCB0byAnZW52J1xuICAgKi9cbiAgcmVhZG9ubHkgbW9kRW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBSdW4gYSBzaGVsbCBjb21tYW5kIGFuZCByZXR1cm4gdGhlIG91dHB1dC5cbiAqIFRocm93cyBpZiB0aGUgY29tbWFuZCBmYWlscy5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZCBjb21tYW5kIChlLmcgJ2dpdCBjb21taXQgLW0nKVxuICovXG5leHBvcnQgZnVuY3Rpb24gcnVuKGNvbW1hbmQ6IHN0cmluZywgb3B0aW9uczogUnVuT3B0aW9ucyA9IHt9KTogc3RyaW5nIHtcbiAgY29uc3Qgc2hzcGxpdCA9IHNobGV4LnNwbGl0KGNvbW1hbmQpO1xuICBjb25zdCBwaXBlT3JJbmhlcml0ID0gKG9wdGlvbnMuY2FwdHVyZSA/PyBmYWxzZSkgPyAncGlwZSc6ICdpbmhlcml0JztcbiAgY29uc3QgZW52ID0geyAuLi5wcm9jZXNzLmVudiwgLi4ub3B0aW9ucy5tb2RFbnYgfTtcbiAgY29uc3QgcmVzdWx0ID0gY2hpbGQuc3Bhd25TeW5jKHNoc3BsaXRbMF0sIHNoc3BsaXQuc2xpY2UoMSksIHtcbiAgICBzdGRpbzogWydpZ25vcmUnLCBwaXBlT3JJbmhlcml0LCBwaXBlT3JJbmhlcml0XSxcbiAgICBjd2Q6IG9wdGlvbnMuY3dkLFxuICAgIHNoZWxsOiBvcHRpb25zLnNoZWxsLFxuICAgIGVudixcbiAgfSk7XG4gIGlmIChyZXN1bHQuZXJyb3IpIHtcbiAgICB0aHJvdyByZXN1bHQuZXJyb3I7XG4gIH1cblxuICBjb25zdCBzdGRvdXQgPSByZXN1bHQuc3Rkb3V0Py50b1N0cmluZygpO1xuICBjb25zdCBzdGRlcnIgPSByZXN1bHQuc3RkZXJyPy50b1N0cmluZygpO1xuXG4gIGlmIChyZXN1bHQuc3RhdHVzICE9PSAwKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGBcbiAgICBDb21tYW5kIGZhaWxlZDogJHtjb21tYW5kfS5cbiAgICAgIE91dHB1dDogJHtzdGRvdXR9XG4gICAgICBFcnJvcjogJHtzdGRlcnJ9YDtcbiAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIH1cbiAgcmV0dXJuIHN0ZG91dDtcbn1cblxuLyoqXG4gKiBSdW4gYSBzaGVsbCBjb21tYW5kIGFuZCByZXR1cm4gYSBib29sZWFuIGluZGljYXRpbmcgc3VjY2VzcyBvciBmYWlsdXJlLlxuICpcbiAqIFVzZSB0aGlzIGlzIHdoZW4gdGhlIHJlc3VsdCBvZiB0aGUgY29tbWFuZCBpbmZvcm1zIGEgZGVjaXNpb24gYnV0IGlzIG90aGVyd2lzZSBpbmNvbnNlcXVlbnRpYWwuXG4gKlxuICogQHBhcmFtIGNvbW1hbmQgY29tbWFuZCAoZS5nICdnaXQgbHMtcmVtb3RlIC0tZXhpdC1jb2RlJylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrKGNvbW1hbmQ6IHN0cmluZywgb3B0aW9uczogUnVuT3B0aW9ucyA9IHt9KTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgcnVuKGNvbW1hbmQsIG9wdGlvbnMpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBwYXRoIHVuZGVyIHdoaWNoIGEgcHJvZ3JhbSBpcyBhdmFpbGFibGUuXG4gKiBFbXB0eSBzdHJpbmcgaWYgdGhlIHByb2dyYW0gaXMgbm90IGluc3RhbGxlZC5cbiAqXG4gKiBAcGFyYW0gcHJvZ3JhbSBwcm9ncmFtIHRvIGNoZWNrIChlLmcgJ2dpdCcpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aGljaChwcm9ncmFtOiBzdHJpbmcpOiBzdHJpbmcge1xuICB0cnkge1xuICAgIHJldHVybiBydW4oYHdoaWNoICR7cHJvZ3JhbX1gLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJldHVybiAnJztcbiAgfVxufVxuXG4iXX0=