UNPKG

@elora-cloud/elora-cli

Version:
37 lines (31 loc) 1.36 kB
'use strict'; var node_child_process = require('node:child_process'); var process = require('node:process'); var chalk$1 = require('chalk'); var consola = require('consola'); var paths = require('./paths.cjs'); function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } var process__default = /*#__PURE__*/_interopDefaultCompat(process); var consola__default = /*#__PURE__*/_interopDefaultCompat(consola); const chalk = new chalk$1.Chalk(); async function run(command, cwd = paths.ROOT_DIR) { return new Promise((resolve, reject) => { const [cmd, ...args] = command.split(' '); consola__default.default.info(`run: ${chalk.green(`${cmd} ${args.join(' ')}`)}`); const app = node_child_process.spawn(cmd, args, { cwd, stdio: 'inherit', shell: process__default.default.platform === 'win32', }); const onProcessExit = () => app.kill('SIGHUP'); app.on('close', (code) => { process__default.default.removeListener('exit', onProcessExit); if (code === 0) resolve(); else reject(new Error(`Command failed. \n Command: ${command} \n Code: ${code}`)); }); process__default.default.on('exit', onProcessExit); }); } exports.run = run;