Fork Horse repository, listed by its owner. Publisher snapshot.

packages/forkhorse-gatekeeper/test/local/prepare-full-os.ts

Snapshot at 34e3175

Containing directory

1,630 bytes · typescriptView raw
1// Prepare an isolated exact-pin archive. No tracked upstream file or owner configuration is edited.
2import { execFileSync } from "node:child_process";
3import { copyFileSync, mkdirSync, mkdtempSync, writeFileSync } from "node:fs";
4import { tmpdir } from "node:os";
5import { join, resolve } from "node:path";
6const pin = "8cbfb2b67e3da6222e4d7faeade0ff88eb4253bf";
7const upstream = resolve("../../cloudflare-os");
8const actual = execFileSync("git", ["-C", upstream, "rev-parse", "HEAD"], { encoding: "utf8" }).trim();
9if (actual !== pin) throw new Error("The acceptance harness requires its reviewed upstream pin.");
10const directory = mkdtempSync(join(tmpdir(), "gatekeeper-full-os-"));
11const archive = execFileSync("git", ["-C", upstream, "archive", pin], { maxBuffer: 64 << 20 });
12execFileSync("tar", ["-xf", "-", "-C", directory], { input: archive });
13const extension = join(directory, "packages/gatekeeper-forkhorse");
14mkdirSync(extension);
15copyFileSync("dist/offline-worker.js", join(extension, "worker.js"));
16writeFileSync(join(extension, "cloudflare.config.ts"), `import { defineGadgetsWorker } from "../../scripts/worker-config.ts";
17export default defineGadgetsWorker({ name: "gatekeeper-forkhorse", entrypoint: "worker.js",
18  compatibilityFlags: ["nodejs_compat", "allow_irrevocable_stub_storage", "global_fetch_strictly_public"] });
19export const migrations = [{ tag: "v1", new_sqlite_classes: ["UserAccount", "ForkGatekeeper"] }];
20`);
21mkdirSync(join(directory, "empty-home"));
22console.log(JSON.stringify({ directory, pin, note: "Disposable synthetic fixture only; upstream run-local installs registry dependencies." }));
23