runApps

tcmts.cli.run.runApps · #nwpdon3a · 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 apps.

import { routeApps } from "#codebase/tcmts/cli/commands";
import { execute } from "#codebase/tcmts/cli/main";
import type { Context } from "#codebase/tcmts/cli/run";
import { dim, green } from "#codebase/tcmts/cli/style";
import { currentBuild, listBuilds, pruneBuilds } from "#codebase/tcmts/cli/web";
import { shortHash } from "#codebase/tcmts/core/hash";
import { parse } from "@bomb.sh/router";

export function runApps({ cb, cmd, rest }: Context): number {
  const r = execute(cmd, parse(routeApps(), { argv: rest }));
  if (r.route === "/prune") {
    pruneBuilds(cb, r.model.keep);
    return 0;
  }
  const builds = listBuilds(cb);
  if (!builds.length) return (console.log(dim("no builds yet (`tcm build <app>`)")), 0);
  for (const b of builds) {
    let current = false;
    try {
      current = currentBuild(cb, b.app) === b.hash;
    } catch {}
    console.log(
      `${current ? green("* ") : "  "}${b.app.padEnd(16)} ${dim(shortHash(b.hash))}  ${b.builtAt.replace("T", " ").slice(0, 19)}  ${dim(`${b.endpoints.length} endpoint(s)`)}`,
    );
  }
  return 0;
}

uses

used by