Files
pikasTech-HWLAB/scripts/src/report-paths.mjs
T
2026-05-24 02:31:36 +00:00

23 lines
963 B
JavaScript

import path from "node:path";
export const TEMP_REPORT_ROOT = process.env.HWLAB_TEMP_REPORT_ROOT || "/tmp/hwlab-dev-gate";
const forbiddenRepoReportDir = "reports";
export function tempReportPath(...segments) {
return path.join(TEMP_REPORT_ROOT, ...segments);
}
export function resolveOutputPath(root, outputPath) {
return path.isAbsolute(outputPath) ? outputPath : path.resolve(root, outputPath);
}
export function ensureNotRepoReportsPath(root, outputPath, label = "report path") {
const absoluteRoot = path.resolve(root);
const absoluteOutput = resolveOutputPath(absoluteRoot, outputPath);
const relative = path.relative(absoluteRoot, absoluteOutput).split(path.sep).join("/");
if (relative === forbiddenRepoReportDir || relative.startsWith(`${forbiddenRepoReportDir}/`)) {
throw new Error(`${label} must not write under the forbidden repository report directory; use ${TEMP_REPORT_ROOT} or .state instead`);
}
return absoluteOutput;
}