Files
curios/tools/pack-harmony.mjs
T

48 lines
1.3 KiB
JavaScript

import { mkdir, readFile, writeFile } from "node:fs/promises";
import { createHash } from "node:crypto";
import { pathToFileURL } from "node:url";
import path from "node:path";
import { root, output, run, troveBin } from "./suite.mjs";
run(process.execPath, ["curios/harmony-connector/build.mjs"]);
const directory = path.join(root, "curios/harmony-connector");
const manifest = JSON.parse(
await readFile(path.join(directory, "curio.json"), "utf8"),
);
const file = path.join(
output,
"packages",
`${manifest.id}-${manifest.version}-${process.arch}.curio`,
);
await mkdir(path.dirname(file), { recursive: true });
run(troveBin, ["curio", "check", directory, "--json"]);
run(troveBin, [
"curio",
"pack",
directory,
"--out",
file,
"--overwrite",
"--no-input",
"--json",
]);
const data = await readFile(file);
const entries = [
{
directory: "harmony-connector",
manifest,
file,
artifact: {
target: `${process.arch === "arm64" ? "aarch64" : "x86_64"}-apple-darwin`,
url: pathToFileURL(file).href,
sha256: createHash("sha256").update(data).digest("hex"),
size: data.length,
},
},
];
await writeFile(
path.join(output, "harmony-release.json"),
JSON.stringify(entries, null, 2) + "\n",
);
console.log("Release input: dist/harmony-release.json");