forks/sorcery

git clone https://git.gae.moe/forks/sorcery

Charlotte Somsorcery-ssh: refactor3356bff

grace-patches
779 B28 linesraw
1mod forge;
2mod refresh;
3mod ui;
4
5use std::io::{self, IsTerminal};
6use std::path::PathBuf;
7
8use anyhow::{Result, bail};
9use clap::Parser;
10
11#[derive(Parser)]
12#[command(name = "sorcery-ssh")]
13struct Cli {
14    #[arg(long, env = "SORCERY_REPOSITORIES", value_name = "DIR")]
15    repositories: PathBuf,
16    #[arg(long, env = "SORCERY_CONTROL_SOCKET", value_name = "PATH")]
17    control_socket: Option<PathBuf>,
18    #[arg(long, env = "SORCERY_CLONE_URL_BASE", value_name = "URL")]
19    clone_url_base: Option<String>,
20}
21
22fn main() -> Result<()> {
23    let cli = Cli::parse();
24    if !io::stdin().is_terminal() || !io::stdout().is_terminal() {
25        bail!("interactive session needs a terminal; try `ssh -t`");
26    }
27    ui::run(cli.repositories, cli.clone_url_base, cli.control_socket)
28}