mirror of
https://github.com/Instadapp/dsa-connectors.git
synced 2024-07-29 22:37:00 +00:00
34 lines
681 B
TypeScript
34 lines
681 B
TypeScript
|
import { execFile, spawn } from "child_process";
|
||
|
|
||
|
interface ICommand {
|
||
|
readonly cmd: string;
|
||
|
readonly args: string[];
|
||
|
readonly env: {
|
||
|
[param: string]: string;
|
||
|
};
|
||
|
}
|
||
|
|
||
|
export async function execScript(input: ICommand): Promise<number> {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
let cmdEnv = Object.create(process.env);
|
||
|
for (let param in input.env) {
|
||
|
cmdEnv[param] = input.env[param];
|
||
|
}
|
||
|
|
||
|
const proc = spawn(input.cmd, [...input.args], {
|
||
|
env: cmdEnv,
|
||
|
shell: true,
|
||
|
stdio: "inherit",
|
||
|
});
|
||
|
|
||
|
proc.on("exit", (code) => {
|
||
|
if (code !== 0) {
|
||
|
reject(code);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
resolve(code);
|
||
|
});
|
||
|
});
|
||
|
}
|