openclaw/src/daemon/schtasks-exec.ts

25 lines
863 B
TypeScript

import { runCommandWithTimeout } from "../process/exec.js";
const SCHTASKS_TIMEOUT_MS = 15_000;
const SCHTASKS_NO_OUTPUT_TIMEOUT_MS = 5_000;
export async function execSchtasks(
args: string[],
): Promise<{ stdout: string; stderr: string; code: number }> {
const result = await runCommandWithTimeout(["schtasks", ...args], {
timeoutMs: SCHTASKS_TIMEOUT_MS,
noOutputTimeoutMs: SCHTASKS_NO_OUTPUT_TIMEOUT_MS,
});
const timeoutDetail =
result.termination === "timeout"
? `schtasks timed out after ${SCHTASKS_TIMEOUT_MS}ms`
: result.termination === "no-output-timeout"
? `schtasks produced no output for ${SCHTASKS_NO_OUTPUT_TIMEOUT_MS}ms`
: "";
return {
stdout: result.stdout,
stderr: result.stderr || timeoutDetail,
code: typeof result.code === "number" ? result.code : result.killed ? 124 : 1,
};
}