mirror of
https://github.com/morluto/rea
synced 2026-10-26 14:25:49 -04:00
2250e67bc2
Migrate the remaining native verifier commands to shared ownership with explicit stdin contracts, command-before-fixture cleanup, and failure receipts. Preserve observed catalog counts and unknowns, retained artifacts, native assertions, and selected launch inputs. Remove the obsolete raw exec export and share output persistence across native verifiers. Exercise actual entrypoints with authored failed preflights and acknowledged descendants, plus filesystem failures and opaque error preservation.
31 lines
918 B
JavaScript
31 lines
918 B
JavaScript
import { writeFile } from "node:fs/promises";
|
|
|
|
import { withVerifierCleanup } from "./verifier-cleanup.mjs";
|
|
|
|
/** Retain available command output without losing command or filesystem failures. */
|
|
export async function saveVerifierCommandOutput(operation, paths) {
|
|
let output;
|
|
try {
|
|
output = await operation();
|
|
} catch (cause) {
|
|
const snapshot = cause?.snapshot;
|
|
const stdout = snapshot?.stdout?.text;
|
|
const stderr = snapshot?.stderr?.text;
|
|
return withVerifierCleanup(async () => {
|
|
throw cause;
|
|
}, [
|
|
async () => {
|
|
if (typeof stdout === "string") await writeFile(paths.stdout, stdout);
|
|
},
|
|
async () => {
|
|
if (typeof stderr === "string") await writeFile(paths.stderr, stderr);
|
|
},
|
|
]);
|
|
}
|
|
await withVerifierCleanup(
|
|
() => writeFile(paths.stdout, output.stdout),
|
|
[() => writeFile(paths.stderr, output.stderr)],
|
|
);
|
|
return output;
|
|
}
|