47 lines
1.5 KiB
JavaScript
47 lines
1.5 KiB
JavaScript
#!/usr/bin/env node
|
|
import { writeFile } from "node:fs/promises";
|
|
import path from "node:path";
|
|
|
|
import {
|
|
buildReport,
|
|
formatCheckSummary,
|
|
renderMarkdown,
|
|
repoRoot
|
|
} from "./src/dev-evidence-blocker-aggregator.mjs";
|
|
|
|
function hasFlag(name) {
|
|
return process.argv.includes(name);
|
|
}
|
|
|
|
try {
|
|
const report = await buildReport();
|
|
const wroteReports = hasFlag("--write-report");
|
|
|
|
if (wroteReports) {
|
|
const jsonPath = path.join(repoRoot, "reports/dev-gate/dev-m5-gate-aggregator-v2.json");
|
|
const markdownPath = path.join(repoRoot, "reports/dev-gate/dev-m5-gate-aggregator-v2.md");
|
|
await writeFile(jsonPath, `${JSON.stringify(report, null, 2)}\n`);
|
|
await writeFile(markdownPath, renderMarkdown(report));
|
|
}
|
|
|
|
if (hasFlag("--check")) {
|
|
process.stdout.write(`${JSON.stringify(formatCheckSummary(report))}\n`);
|
|
} else if (hasFlag("--markdown")) {
|
|
process.stdout.write(renderMarkdown(report));
|
|
} else if (wroteReports) {
|
|
process.stdout.write(`${JSON.stringify({
|
|
...formatCheckSummary(report),
|
|
wrote: [
|
|
"reports/dev-gate/dev-m5-gate-aggregator-v2.json",
|
|
"reports/dev-gate/dev-m5-gate-aggregator-v2.md"
|
|
]
|
|
})}\n`);
|
|
} else {
|
|
process.stdout.write(`${JSON.stringify(report, null, hasFlag("--pretty") ? 2 : 0)}\n`);
|
|
}
|
|
} catch (error) {
|
|
const message = error instanceof Error ? error.message : String(error);
|
|
process.stderr.write(`${JSON.stringify({ ok: false, error: message })}\n`);
|
|
process.exitCode = 1;
|
|
}
|