Files
tutti/apps/desktop/scripts/generate-checksums.mjs
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

33 lines
888 B
JavaScript

#!/usr/bin/env node
import { createHash } from "node:crypto";
import { readdir, readFile, writeFile } from "node:fs/promises";
import path from "node:path";
const targetDir = path.resolve(process.argv[2] ?? "dist");
const ignoredSuffixes = new Set([".blockmap", ".yml"]);
function shouldHash(fileName) {
return (
!ignoredSuffixes.has(path.extname(fileName)) &&
fileName !== "SHA256SUMS.txt"
);
}
const entries = (await readdir(targetDir, { withFileTypes: true }))
.filter((entry) => entry.isFile() && shouldHash(entry.name))
.map((entry) => entry.name)
.sort();
const lines = [];
for (const entry of entries) {
const buffer = await readFile(path.join(targetDir, entry));
const hash = createHash("sha256").update(buffer).digest("hex");
lines.push(`${hash} ${entry}`);
}
await writeFile(
path.join(targetDir, "SHA256SUMS.txt"),
`${lines.join("\n")}\n`
);