Add Capacitor support (#483)
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
This commit is contained in:
57
src/ipc/utils/simpleSpawn.ts
Normal file
57
src/ipc/utils/simpleSpawn.ts
Normal file
@@ -0,0 +1,57 @@
|
||||
import { spawn } from "child_process";
|
||||
import log from "electron-log/main";
|
||||
|
||||
const logger = log.scope("simpleSpawn");
|
||||
|
||||
export async function simpleSpawn({
|
||||
command,
|
||||
cwd,
|
||||
successMessage,
|
||||
errorPrefix,
|
||||
}: {
|
||||
command: string;
|
||||
cwd: string;
|
||||
successMessage: string;
|
||||
errorPrefix: string;
|
||||
}): Promise<void> {
|
||||
return new Promise<void>((resolve, reject) => {
|
||||
logger.info(`Running: ${command}`);
|
||||
const process = spawn(command, {
|
||||
cwd,
|
||||
shell: true,
|
||||
stdio: "pipe",
|
||||
});
|
||||
|
||||
let stdout = "";
|
||||
let stderr = "";
|
||||
|
||||
process.stdout?.on("data", (data) => {
|
||||
const output = data.toString();
|
||||
stdout += output;
|
||||
logger.info(output);
|
||||
});
|
||||
|
||||
process.stderr?.on("data", (data) => {
|
||||
const output = data.toString();
|
||||
stderr += output;
|
||||
logger.error(output);
|
||||
});
|
||||
|
||||
process.on("close", (code) => {
|
||||
if (code === 0) {
|
||||
logger.info(successMessage);
|
||||
resolve();
|
||||
} else {
|
||||
logger.error(`${errorPrefix}, exit code ${code}`);
|
||||
const errorMessage = `${errorPrefix} (exit code ${code})\n\nSTDOUT:\n${stdout}\n\nSTDERR:\n${stderr}`;
|
||||
reject(new Error(errorMessage));
|
||||
}
|
||||
});
|
||||
|
||||
process.on("error", (err) => {
|
||||
logger.error(`Failed to spawn command: ${command}`, err);
|
||||
const errorMessage = `Failed to spawn command: ${err.message}\n\nSTDOUT:\n${stdout}\n\nSTDERR:\n${stderr}`;
|
||||
reject(new Error(errorMessage));
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user