diff options
Diffstat (limited to 'src/platform')
| -rw-r--r-- | src/platform/fallback.rs | 8 | ||||
| -rw-r--r-- | src/platform/linux.rs | 10 | ||||
| -rw-r--r-- | src/platform/macos.rs | 10 |
3 files changed, 28 insertions, 0 deletions
diff --git a/src/platform/fallback.rs b/src/platform/fallback.rs index a8f9d8ce..d7360f9b 100644 --- a/src/platform/fallback.rs +++ b/src/platform/fallback.rs @@ -41,6 +41,14 @@ pub fn write_clipboard(_bytes: &[u8]) -> bool { } /// Unsupported platform stub. +pub fn open_url(_url: &str) -> std::io::Result<()> { + Err(std::io::Error::new( + std::io::ErrorKind::Unsupported, + "opening URLs is not supported on this platform", + )) +} + +/// Unsupported platform stub. pub fn read_clipboard_image() -> Option<ClipboardImage> { None } diff --git a/src/platform/linux.rs b/src/platform/linux.rs index 00f4b906..2ea26559 100644 --- a/src/platform/linux.rs +++ b/src/platform/linux.rs @@ -179,6 +179,16 @@ pub fn write_clipboard(bytes: &[u8]) -> bool { false } +pub fn open_url(url: &str) -> std::io::Result<()> { + Command::new("xdg-open") + .arg(url) + .stdin(Stdio::null()) + .stdout(Stdio::null()) + .stderr(Stdio::null()) + .spawn()?; + Ok(()) +} + pub fn read_clipboard_image() -> Option<ClipboardImage> { for (mime, extension) in [ ("image/png", "png"), diff --git a/src/platform/macos.rs b/src/platform/macos.rs index 354a6b3c..3ff23251 100644 --- a/src/platform/macos.rs +++ b/src/platform/macos.rs @@ -228,6 +228,16 @@ pub fn write_clipboard(bytes: &[u8]) -> bool { ) } +pub fn open_url(url: &str) -> std::io::Result<()> { + Command::new("open") + .arg(url) + .stdin(Stdio::null()) + .stdout(Stdio::null()) + .stderr(Stdio::null()) + .spawn()?; + Ok(()) +} + pub fn read_clipboard_image() -> Option<ClipboardImage> { let path = std::env::temp_dir().join(format!( "herdr-clipboard-image-{}-{}.png", |
