Log templated command argv and enforce timeout kill
parent
a5e2636e17
commit
17b4c5e7e7
16
src/index.ts
16
src/index.ts
|
|
@ -397,11 +397,13 @@ async function getReplyFromConfig(
|
||||||
const finalArgv = templatePrefix
|
const finalArgv = templatePrefix
|
||||||
? [argv[0], templatePrefix, ...argv.slice(1)]
|
? [argv[0], templatePrefix, ...argv.slice(1)]
|
||||||
: argv;
|
: argv;
|
||||||
|
logVerbose(`Resolved command argv: ${finalArgv.join(" ")}`);
|
||||||
const started = Date.now();
|
const started = Date.now();
|
||||||
try {
|
try {
|
||||||
const { stdout } = await execFileAsync(finalArgv[0], finalArgv.slice(1), {
|
const { stdout } = await execFileAsync(finalArgv[0], finalArgv.slice(1), {
|
||||||
maxBuffer: 1024 * 1024,
|
maxBuffer: 1024 * 1024,
|
||||||
timeout: timeoutMs,
|
timeout: timeoutMs,
|
||||||
|
killSignal: "SIGKILL",
|
||||||
});
|
});
|
||||||
const trimmed = stdout.trim();
|
const trimmed = stdout.trim();
|
||||||
logVerbose(
|
logVerbose(
|
||||||
|
|
@ -410,10 +412,16 @@ async function getReplyFromConfig(
|
||||||
logVerbose(`Command auto-reply finished in ${Date.now() - started}ms`);
|
logVerbose(`Command auto-reply finished in ${Date.now() - started}ms`);
|
||||||
return trimmed || undefined;
|
return trimmed || undefined;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(
|
const elapsed = Date.now() - started;
|
||||||
`Command auto-reply failed after ${Date.now() - started}ms`,
|
const anyErr = err as { killed?: boolean; signal?: string };
|
||||||
err,
|
const timeoutHit = anyErr.killed === true || anyErr.signal === "SIGKILL";
|
||||||
);
|
if (timeoutHit) {
|
||||||
|
console.error(
|
||||||
|
`Command auto-reply timed out after ${elapsed}ms (limit ${timeoutMs}ms)`,
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
console.error(`Command auto-reply failed after ${elapsed}ms`, err);
|
||||||
|
}
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue