forked from openclaw/openclaw
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathschtasks-exec.ts
More file actions
24 lines (22 loc) · 864 Bytes
/
Copy pathschtasks-exec.ts
File metadata and controls
24 lines (22 loc) · 864 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import { runCommandWithTimeout } from "../process/exec.js";
const SCHTASKS_TIMEOUT_MS = 15_000;
const SCHTASKS_NO_OUTPUT_TIMEOUT_MS = 30_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,
};
}