mirror of https://github.com/OpenVidu/openvidu.git
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import { execSync, spawn } from "child_process";
|
|
|
|
export const execCommand = (command: string): string => {
|
|
try {
|
|
return execSync(command).toString().trim();
|
|
} catch (error) {
|
|
console.error(`Error executing command: ${command}`);
|
|
console.error(error);
|
|
throw error;
|
|
}
|
|
};
|
|
|
|
export const execCommandInBackground = (command: string, args: string[]): number | undefined => {
|
|
const child = spawn(command, args, { detached: true });
|
|
|
|
child.stdout.on("data", (data) => {
|
|
console.log(`stdout (${command}): ${data}`);
|
|
});
|
|
child.stderr.on("data", (data) => {
|
|
console.log(`stderr (${command}): ${data}`);
|
|
});
|
|
child.on("close", (code) => {
|
|
console.log(`child process (${command}) exited with code ${code}`);
|
|
});
|
|
child.on("error", (error) => {
|
|
console.error(`child process (${command}) error: ${error}`);
|
|
throw error;
|
|
});
|
|
|
|
return child.pid;
|
|
};
|
|
|
|
export const killProcess = (pid: number) => {
|
|
process.kill(pid);
|
|
};
|
|
|
|
export const sleep = async (seconds: number) => {
|
|
return new Promise((resolve) => {
|
|
setTimeout(resolve, seconds * 1000);
|
|
});
|
|
};
|