Skip to main content

synaps_cli/core/auth/
browser.rs

1/// Open a URL in the default browser.
2pub fn open_browser(url: &str) -> std::result::Result<(), String> {
3    #[cfg(target_os = "linux")]
4    {
5        std::process::Command::new("xdg-open")
6            .arg(url)
7            .stdout(std::process::Stdio::null())
8            .stderr(std::process::Stdio::null())
9            .spawn()
10            .map_err(|e| format!("Failed to open browser: {}", e))?;
11    }
12
13    #[cfg(target_os = "macos")]
14    {
15        std::process::Command::new("open")
16            .arg(url)
17            .stdout(std::process::Stdio::null())
18            .stderr(std::process::Stdio::null())
19            .spawn()
20            .map_err(|e| format!("Failed to open browser: {}", e))?;
21    }
22
23    #[cfg(target_os = "windows")]
24    {
25        std::process::Command::new("cmd")
26            .args(["/c", "start", url])
27            .stdout(std::process::Stdio::null())
28            .stderr(std::process::Stdio::null())
29            .spawn()
30            .map_err(|e| format!("Failed to open browser: {}", e))?;
31    }
32
33    Ok(())
34}