Radish alpha
r
rad:z4D5UCArafTzTQpDZNQRuqswh3ury
Radicle desktop app
Radicle
Git
radicle-desktop crates test-http-api src main.rs
use std::process;

use test_http_api as api;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let options = parse_options()?;
    match api::run(options).await {
        Ok(()) => {}
        Err(_) => {
            process::exit(1);
        }
    }
    Ok(())
}

fn parse_options() -> Result<api::Options, lexopt::Error> {
    use lexopt::prelude::*;

    let mut parser = lexopt::Parser::from_env();
    let mut listen = None;

    while let Some(arg) = parser.next()? {
        match arg {
            Long("listen") => {
                let addr = parser.value()?.parse()?;
                listen = Some(addr);
            }
            _ => return Err(arg.unexpected()),
        }
    }
    Ok(api::Options {
        listen: listen.unwrap_or_else(|| ([0, 0, 0, 0], 8081).into()),
    })
}