UNPKG

eas-cli

Version:
63 lines (62 loc) 2.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.runCommandAsync = void 0; const tslib_1 = require("tslib"); const spawn_async_1 = tslib_1.__importDefault(require("@expo/spawn-async")); const chalk_1 = tslib_1.__importDefault(require("chalk")); const log_1 = tslib_1.__importDefault(require("../log")); const ora_1 = require("../ora"); async function runCommandAsync({ cwd, args, command, shouldShowStderrLine, shouldPrintStderrLineAsStdout, showSpinner = true, }) { log_1.default.log(`🏗️ Running ${chalk_1.default.bold(`${command} ${args.join(' ')}`)}...`); let spinner; if (showSpinner) { spinner = (0, ora_1.ora)(`${chalk_1.default.bold(`${command} ${args.join(' ')}`)}`).start(); } const spawnPromise = (0, spawn_async_1.default)(command, args, { stdio: ['inherit', 'pipe', 'pipe'], cwd, }); const { child: { stdout, stderr }, } = spawnPromise; if (!stdout || !stderr) { throw new Error(`Failed to spawn ${command}`); } stdout.on('data', data => { for (const line of data.toString().trim().split('\n')) { log_1.default.log(`${chalk_1.default.gray(`[${command}]`)} ${line}`); } }); stderr.on('data', data => { for (const line of data.toString().trim().split('\n')) { if (shouldShowStderrLine && !shouldShowStderrLine(line)) { continue; } const log = `${chalk_1.default.gray(`[${command}]`)} ${line}`; if (shouldPrintStderrLineAsStdout?.(line)) { log_1.default.log(log); } else { log_1.default.warn(`${chalk_1.default.gray(`[${command}]`)} ${line}`); } } }); try { await spawnPromise; } catch (error) { if (showSpinner) { spinner?.fail(`${chalk_1.default.bold(`${command} ${args.join(' ')}`)} failed`); } else { log_1.default.error(`❌ ${chalk_1.default.bold(`${command} ${args.join(' ')}`)} failed`); } throw error; } if (showSpinner) { spinner?.succeed(`${chalk_1.default.bold(`${command} ${args.join(' ')}`)} succeeded`); } else { log_1.default.log(`✅ ${chalk_1.default.bold(`${command} ${args.join(' ')}`)} succeeded`); } log_1.default.log(''); } exports.runCommandAsync = runCommandAsync;