httpd: improve error message for missing browser
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, while still printing the URL to visit.
Signed-off-by: Fintan Halpenny <fintan.halpenny@gmail.com>
X-Clacks-Overhead: GNU Terry Pratchett
This commit is contained in:
parent
ccec3f80dc
commit
b6e1385e39
|
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue