UNPKG

aws-cdk

Version:

AWS CDK Toolkit CLI, the command line tool for CDK apps

35 lines 3.99 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.shell = shell; const toolkit_lib_1 = require("@aws-cdk/toolkit-lib"); const chalk_1 = __importDefault(require("chalk")); const tools_1 = require("../../private/tools"); /** * OS helpers * * Executes the given command (argv array, never through a shell) while both * printing its stdout in real-time and collecting it into the returned * string. stderr goes straight to the terminal. */ async function shell(ioHelper, command) { await ioHelper.defaults.debug(`Executing ${chalk_1.default.blue((0, tools_1.renderForDisplay)(command))}`); try { // stderr stays attached to the terminal so tools like npm keep their // progress rendering; stdout is echoed in real time and also collected. const result = await (0, tools_1.run)(command, { stdio: 'inherit-stderr', onOutput: (_stream, data) => process.stdout.write(data), }); return result.stdout; } catch (e) { if (e instanceof tools_1.SubprocessError && e.kind === 'exited') { throw new toolkit_lib_1.ToolkitError('CommandFailed', e.message); } throw e; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVlBLHNCQWlCQztBQTdCRCxzREFBb0Q7QUFDcEQsa0RBQTBCO0FBRTFCLCtDQUE2RTtBQUU3RTs7Ozs7O0dBTUc7QUFDSSxLQUFLLFVBQVUsS0FBSyxDQUFDLFFBQWtCLEVBQUUsT0FBaUI7SUFDL0QsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxhQUFhLGVBQUssQ0FBQyxJQUFJLENBQUMsSUFBQSx3QkFBZ0IsRUFBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVwRixJQUFJLENBQUM7UUFDSCxxRUFBcUU7UUFDckUsd0VBQXdFO1FBQ3hFLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxXQUFHLEVBQUMsT0FBTyxFQUFFO1lBQ2hDLEtBQUssRUFBRSxnQkFBZ0I7WUFDdkIsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1NBQ3hELENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsWUFBWSx1QkFBZSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEQsTUFBTSxJQUFJLDBCQUFZLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsTUFBTSxDQUFDLENBQUM7SUFDVixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJ0Bhd3MtY2RrL3Rvb2xraXQtbGliJztcbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vLi4vYXBpLXByaXZhdGUnO1xuaW1wb3J0IHsgcnVuLCByZW5kZXJGb3JEaXNwbGF5LCBTdWJwcm9jZXNzRXJyb3IgfSBmcm9tICcuLi8uLi9wcml2YXRlL3Rvb2xzJztcblxuLyoqXG4gKiBPUyBoZWxwZXJzXG4gKlxuICogRXhlY3V0ZXMgdGhlIGdpdmVuIGNvbW1hbmQgKGFyZ3YgYXJyYXksIG5ldmVyIHRocm91Z2ggYSBzaGVsbCkgd2hpbGUgYm90aFxuICogcHJpbnRpbmcgaXRzIHN0ZG91dCBpbiByZWFsLXRpbWUgYW5kIGNvbGxlY3RpbmcgaXQgaW50byB0aGUgcmV0dXJuZWRcbiAqIHN0cmluZy4gc3RkZXJyIGdvZXMgc3RyYWlnaHQgdG8gdGhlIHRlcm1pbmFsLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hlbGwoaW9IZWxwZXI6IElvSGVscGVyLCBjb21tYW5kOiBzdHJpbmdbXSk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBFeGVjdXRpbmcgJHtjaGFsay5ibHVlKHJlbmRlckZvckRpc3BsYXkoY29tbWFuZCkpfWApO1xuXG4gIHRyeSB7XG4gICAgLy8gc3RkZXJyIHN0YXlzIGF0dGFjaGVkIHRvIHRoZSB0ZXJtaW5hbCBzbyB0b29scyBsaWtlIG5wbSBrZWVwIHRoZWlyXG4gICAgLy8gcHJvZ3Jlc3MgcmVuZGVyaW5nOyBzdGRvdXQgaXMgZWNob2VkIGluIHJlYWwgdGltZSBhbmQgYWxzbyBjb2xsZWN0ZWQuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcnVuKGNvbW1hbmQsIHtcbiAgICAgIHN0ZGlvOiAnaW5oZXJpdC1zdGRlcnInLFxuICAgICAgb25PdXRwdXQ6IChfc3RyZWFtLCBkYXRhKSA9PiBwcm9jZXNzLnN0ZG91dC53cml0ZShkYXRhKSxcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0LnN0ZG91dDtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgaWYgKGUgaW5zdGFuY2VvZiBTdWJwcm9jZXNzRXJyb3IgJiYgZS5raW5kID09PSAnZXhpdGVkJykge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignQ29tbWFuZEZhaWxlZCcsIGUubWVzc2FnZSk7XG4gICAgfVxuICAgIHRocm93IGU7XG4gIH1cbn1cbiJdfQ==