runDescribe

tcmts.cli.run.runDescribe · #igau34p6 · term · runs on the server

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

used by