Vectrum
Sign In
19 lines · 826 Bytes · TypeScript
export const SSH_PORT = Number(process.env.SSH_PORT ?? 2222);
export const SSH_LISTEN_HOST = process.env.SSH_LISTEN_HOST ?? "0.0.0.0";
export const SSH_ENABLED = process.env.SSH_DISABLED !== "1";

/** Host shown in SSH clone URLs: SSH_HOST, or the host the web UI was reached on. */
export function sshHost(webHost: string) {
  if (process.env.SSH_HOST) return process.env.SSH_HOST;
  return webHost.replace(/:\d+$/, "").replace(/^\[(.*)\]$/, "$1");
}

export function sshCloneUrl(webHost: string, repoPath: string) {
  const host = sshHost(webHost);
  return SSH_PORT === 22 ? `git@${host}:${repoPath}` : `ssh://git@${host}:${SSH_PORT}/${repoPath}`;
}

export function sshTestCommand(webHost: string) {
  const host = sshHost(webHost);
  return SSH_PORT === 22 ? `ssh -T git@${host}` : `ssh -T -p ${SSH_PORT} git@${host}`;
}