mirror of
https://gitee.com/element-plus/element-plus.git
synced 2024-12-05 04:37:47 +08:00
24 lines
645 B
TypeScript
24 lines
645 B
TypeScript
|
import { spawn } from 'child_process'
|
||
|
import { green } from './log'
|
||
|
import { projRoot } from './paths'
|
||
|
|
||
|
export const run = async (command: string, cwd: string = projRoot) =>
|
||
|
new Promise<void>((resolve, reject) => {
|
||
|
const args = command.split(' ')
|
||
|
const cmd = args.shift()!
|
||
|
|
||
|
green(`run: ${cmd} ${args.join(' ')}`)
|
||
|
const app = spawn(cmd, args, {
|
||
|
cwd,
|
||
|
stdio: 'inherit',
|
||
|
})
|
||
|
app.on('close', (code) => {
|
||
|
if (code === 0) resolve()
|
||
|
else
|
||
|
reject(
|
||
|
new Error(`Command failed. \n Command: ${command} \n Code: ${code}`)
|
||
|
)
|
||
|
})
|
||
|
process.on('exit', () => app.kill('SIGHUP'))
|
||
|
})
|