runChangelog
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
- tcmts.cli.commands.routeChangelog
- tcmts.cli.main.execute
- tcmts.cli.manifests.findPackage
- tcmts.cli.manifests.packagesIn
- tcmts.cli.releases.changelog
- tcmts.cli.run.Context
- tcmts.cli.style.dim