runDescribe
uses tcmts.cli.main.execute, which uses tcmts.cli.help.usageError, which uses tcmts.cli.help.usageOf, which uses tcmts.cli.style.bold, which uses node:util
Runs tcm describe.
import { routeDescribe } from "#codebase/tcmts/cli/commands"; import { causalArg, execute } from "#codebase/tcmts/cli/main"; import type { Context } from "#codebase/tcmts/cli/run"; import { dim } from "#codebase/tcmts/cli/style"; import { shortHash } from "#codebase/tcmts/core/hash"; import { cleanMessage, entryTitle } from "#codebase/tcmts/store"; import { parse } from "@bomb.sh/router"; export function runDescribe({ cb, cmd, rest }: Context): number { const { model } = execute(cmd, parse(routeDescribe(), { argv: rest })); const hash = causalArg(cb, model.entry ?? "0"); const c = cb.store.causal(hash)!; const entry = `${shortHash(hash)} (${c.command})`; if (model.message === undefined) { console.log( c.message ?? dim(`${entry} has no message: \`tcm describe ${shortHash(hash)} -m "…"\` gives it one`), ); return 0; } const message = cleanMessage(model.message); cb.store.describe(hash, message); console.log( message ? `${entry}: ${entryTitle({ command: c.command, message })}` : `${entry} has no message now`, ); return 0; }
uses
- tcmts.cli.commands.routeDescribe
- tcmts.cli.main.causalArg
- tcmts.cli.main.execute
- tcmts.cli.run.Context
- tcmts.cli.style.dim
- tcmts.core.hash.shortHash
- tcmts.store.cleanMessage
- tcmts.store.entryTitle