Radish alpha
h
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
Radicle Heartwood Protocol & Stack
Radicle
Git
httpd: improve error message for missing browser
Merged fintohaps opened 2 years ago

If open or xdg-open fail the error is:

No such file or directory (os error 2)

This generally means that the command could not open the browser on the OS. To provide better help, improve the error message by informing the user what went wrong and that they can run rad web --no-open instead.

Signed-off-by: Fintan Halpenny fintan.halpenny@gmail.com X-Clacks-Overhead: GNU Terry Pratchett

1 file changed +13 -7 ccec3f80 b6e1385e
modified radicle-httpd/src/commands/web.rs
@@ -198,16 +198,22 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
        let cmd_name = "xdg-open";

        let mut cmd = Command::new(cmd_name);
-

-
        match cmd.arg(auth_url.as_str()).spawn()?.wait() {
-
            Ok(exit_status) => {
-
                if exit_status.success() {
-
                    term::success!("Opened {auth_url}");
-
                } else {
+
        match cmd.arg(auth_url.as_str()).spawn() {
+
            Ok(mut child) => match child.wait() {
+
                Ok(exit_status) => {
+
                    if exit_status.success() {
+
                        term::success!("Opened {auth_url}");
+
                    } else {
+
                        term::info!("Visit {auth_url} to connect");
+
                    }
+
                }
+
                Err(_) => {
                    term::info!("Visit {auth_url} to connect");
                }
-
            }
+
            },
            Err(_) => {
+
                term::error(format!("Could not open web browser via `{cmd_name}`"));
+
                term::hint("Use `rad web --no-open` if this continues");
                term::info!("Visit {auth_url} to connect");
            }
        }