runChangelog

tcmts.cli.run.runChangelog · #27a4qobk · term · runs on the server

uses node:fs

Runs tcm changelog.

import { routeChangelog } from "#codebase/tcmts/cli/commands";
import { execute } from "#codebase/tcmts/cli/main";
import { findPackage, packagesIn } from "#codebase/tcmts/cli/manifests";
import { changelog } from "#codebase/tcmts/cli/releases";
import type { Context } from "#codebase/tcmts/cli/run";
import { dim } from "#codebase/tcmts/cli/style";
import { parse } from "@bomb.sh/router";
import fs from "node:fs";
import path_1 from "node:path";

export function runChangelog({ cb, cmd, rest, cwd }: Context): number {
  const { model } = execute(cmd, parse(routeChangelog(), { argv: rest }));
  const name = model.package ?? findPackage(packagesIn(cb, cb.store.names()), undefined).name;
  const text = changelog(cb, name);
  if (model.out === undefined) process.stdout.write(text);
  else {
    fs.writeFileSync(path_1.resolve(cwd, model.out), text);
    console.log(
      `wrote ${model.out} ${dim(`(${cb.store.releases(name).length} release(s) of ${name})`)}`,
    );
  }
  return 0;
}

uses

used by