| 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, | |
| }; | |
| } | |