runRemote

tcmts.cli.run.runRemote · #ou33tsvq · 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 remote.

import { routeRemote } from "#codebase/tcmts/cli/commands";
import { execute } from "#codebase/tcmts/cli/main";
import type { Context } from "#codebase/tcmts/cli/run";
import { bold, dim } from "#codebase/tcmts/cli/style";
import { addRemote, listRemotes } from "#codebase/tcmts/cli/sync";
import { parse } from "@bomb.sh/router";

export function runRemote({ cb, cmd, rest }: Context): number {
  const r = execute(cmd, parse(routeRemote(), { argv: rest }));
  if (r.route === "/add") {
    addRemote(cb, r.model.remote, r.model.url, r.model.token, r.model.fingerprint);
    console.log(`added remote ${r.model.remote}`);
  } else if (r.route === "/rm") {
    cb.store.deleteSetting(`remote.${r.model.remote}`);
    console.log(`removed remote ${r.model.remote}`);
  } else {
    const remotes = listRemotes(cb);
    if (!remotes.length)
      console.log(dim("no remotes; add one with `tcm remote add <name> <url|path>`"));
    for (const [n, c] of remotes)
      console.log(`${bold(n)}  ${c.url}${c.token ? dim("  (token)") : ""}`);
  }
  return 0;
}

uses

used by