25 lines
572 B
TypeScript
25 lines
572 B
TypeScript
import child_process from 'child_process';
|
|
|
|
/**
|
|
* Execute a shell command
|
|
* @param cmd Shell command
|
|
* @param loc Working directory
|
|
*/
|
|
export function execute(cmd: any[], loc: string): Promise<void> {
|
|
return new Promise((resolve, reject) => {
|
|
const cproc = child_process.spawn(cmd[0], cmd.slice(1), {
|
|
cwd: loc,
|
|
});
|
|
|
|
cproc.stdout.pipe(process.stdout);
|
|
cproc.stderr.pipe(process.stderr);
|
|
|
|
cproc.on('exit', (code: number) => {
|
|
if (code !== 0) {
|
|
return reject(new Error('Build failed!'));
|
|
}
|
|
resolve();
|
|
});
|
|
});
|
|
}
|