23 lines
654 B
Rust
23 lines
654 B
Rust
use crate::platform::OpenUrl;
|
|
use crate::prelude::HasDesktopUiState;
|
|
|
|
impl<T: HasDesktopUiState> OpenUrl for T {
|
|
fn open_url(&mut self, url: &str) {
|
|
let (program, first): (&str, &[&str]) = if cfg!(target_os = "macos") {
|
|
("open", &[])
|
|
} else if cfg!(target_os = "windows") {
|
|
("cmd", &["/C", "start", ""])
|
|
} else {
|
|
("xdg-open", &[])
|
|
};
|
|
match std::process::Command::new(program)
|
|
.args(first)
|
|
.arg(url)
|
|
.spawn()
|
|
{
|
|
Ok(_) => {}
|
|
Err(e) => log::warn!("could not open {url} with {program}: {e}"),
|
|
}
|
|
}
|
|
}
|