Add LinuxCNC five-axis case catalog
This commit is contained in:
21
scripts/validate_five_axis_catalog.mjs
Normal file
21
scripts/validate_five_axis_catalog.mjs
Normal file
@@ -0,0 +1,21 @@
|
||||
import { readFile } from "node:fs/promises";
|
||||
import { resolve } from "node:path";
|
||||
import { FIVE_AXIS_CASES } from "../web/workspace/five-axis-machine-catalog.mjs";
|
||||
|
||||
const root = resolve(new URL("..", import.meta.url).pathname);
|
||||
const checks = [];
|
||||
const errors = [];
|
||||
for (const item of FIVE_AXIS_CASES) {
|
||||
const paths = [...item.localCases, item.kinematicsSource];
|
||||
for (const relative of paths) {
|
||||
try {
|
||||
const text = await readFile(resolve(root, relative), "utf8");
|
||||
checks.push({ case: item.id, path: relative, bytes: Buffer.byteLength(text) });
|
||||
} catch (error) {
|
||||
errors.push({ case: item.id, path: relative, error: error instanceof Error ? error.message : String(error) });
|
||||
}
|
||||
}
|
||||
}
|
||||
const report = { report_id: "FIVE-AXIS-CATALOG-LOCAL-SOURCE", status: errors.length ? "failed" : "verified", caseCount: FIVE_AXIS_CASES.length, fileCount: checks.length, checks, errors };
|
||||
console.log(JSON.stringify(report, null, 2));
|
||||
if (errors.length) process.exitCode = 1;
|
||||
Reference in New Issue
Block a user