recordRelease

tcmts.cli.mirror.recordRelease · #uh4zv7so · term · runs on the server

uses node:path

Add a release to the mirror's records (for git: commit them with the next change).

import { git, RECORDS, releaseRecords } from "#codebase/tcmts/cli/mirror";
import type { Mirror, ReleaseRecord } from "#codebase/tcmts/cli/mirror";
import fs from "node:fs";
import path from "node:path";

export function recordRelease(m: Mirror, r: Omit<ReleaseRecord, "dir">) {
  const top = git(m.dir, "rev-parse", "--show-toplevel") ?? m.dir;
  const records = [...releaseRecords(m.dir).filter((x) => !(x.package === r.package && x.version === r.version)), { ...r, dir: path.relative(top, m.dir) || "." }];
  fs.writeFileSync(path.join(m.dir, RECORDS), JSON.stringify(records, null, 2) + "\n");
}

uses

used by