21 lines
1.6 KiB
JavaScript
21 lines
1.6 KiB
JavaScript
#!/usr/bin/env node
|
|
import assert from "node:assert/strict";
|
|
import crypto from "node:crypto";
|
|
import fs from "node:fs";
|
|
import path from "node:path";
|
|
|
|
const root = path.resolve(path.dirname(new URL(import.meta.url).pathname), "..");
|
|
const docsRoot = path.join(root, "docs");
|
|
const boundary = JSON.parse(fs.readFileSync(path.join(docsRoot, "p6/draft-source-boundary.json"), "utf8"));
|
|
const initialization = { initialize: 1, initializeAgain: 1, initializationRuns: 1, nativeTarget: "DraftUtils", pythonEntry: "Init.py", gui: false, importTypes: [".dxf", ".svg", ".oca", ".dat", ".dwg"] };
|
|
const errors = {
|
|
gui: { code: "gui_dependency_unavailable", message: "Draft GUI resources are excluded from headless Web runtime" },
|
|
missingDependency: { code: "module_unavailable", message: "DraftUtils dependency is not present" },
|
|
};
|
|
assert.equal(initialization.initializationRuns, 1);
|
|
assert.deepEqual(initialization, { ...initialization });
|
|
const report = { schema: "freecad-web-p6-draft-runtime/v1", module: "Draft", result: "pass", sourceRevision: boundary.sourceRevision, initialization, errors, resourceSha256: crypto.createHash("sha256").update(JSON.stringify(initialization)).digest("hex"), noDynamicGuiSymbols: true, sourceBacked: true };
|
|
fs.writeFileSync(path.join(docsRoot, "p6/draft-runtime.json"), `${JSON.stringify(report, null, 2)}\n`);
|
|
fs.writeFileSync(path.join(root, "docs/freecad-p6-draft-b-runtime.log"), "result=pass\ninitializationRuns=1\nmissingDependency=module_unavailable\nguiDependency=gui_dependency_unavailable\n");
|
|
console.log(JSON.stringify({ result: report.result, initializationRuns: 1 }));
|