Skip to content

Commit

Permalink
gpui: Don't panic when failing to exec system opener (#21674)
Browse files Browse the repository at this point in the history
  • Loading branch information
cole-miller authored Dec 7, 2024
1 parent 4d22a07 commit fa7dddd
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
8 changes: 4 additions & 4 deletions crates/gpui/src/platform/linux/platform.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ use std::{
time::Duration,
};

use anyhow::anyhow;
use anyhow::{anyhow, Context as _};
use async_task::Runnable;
use calloop::channel::Channel;
use calloop::{EventLoop, LoopHandle, LoopSignal};
Expand Down Expand Up @@ -382,14 +382,14 @@ impl<P: LinuxClient + 'static> Platform for P {
}

fn open_with_system(&self, path: &Path) {
let executor = self.background_executor().clone();
let path = path.to_owned();
executor
self.background_executor()
.spawn(async move {
let _ = std::process::Command::new("xdg-open")
.arg(path)
.spawn()
.expect("Failed to open file with xdg-open");
.context("invoking xdg-open")
.log_err();
})
.detach();
}
Expand Down
10 changes: 6 additions & 4 deletions crates/gpui/src/platform/mac/platform.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ use crate::{
PlatformTextSystem, PlatformWindow, Result, ScreenCaptureSource, SemanticVersion, Task,
WindowAppearance, WindowParams,
};
use anyhow::anyhow;
use anyhow::{anyhow, Context as _};
use block::ConcreteBlock;
use cocoa::{
appkit::{
Expand Down Expand Up @@ -57,6 +57,7 @@ use std::{
sync::Arc,
};
use strum::IntoEnumIterator;
use util::ResultExt;

#[allow(non_upper_case_globals)]
const NSUTF8StringEncoding: NSUInteger = 4;
Expand Down Expand Up @@ -779,15 +780,16 @@ impl Platform for MacPlatform {
}

fn open_with_system(&self, path: &Path) {
let path = path.to_path_buf();
let path = path.to_owned();
self.0
.lock()
.background_executor
.spawn(async move {
std::process::Command::new("open")
let _ = std::process::Command::new("open")
.arg(path)
.spawn()
.expect("Failed to open file");
.context("invoking open command")
.log_err();
})
.detach();
}
Expand Down

0 comments on commit fa7dddd

Please sign in to comment.