From c32bbcc7edc2cf99da52b1407c90238bc781a804 Mon Sep 17 00:00:00 2001 From: Ellie Huxtable Date: Thu, 25 Jul 2024 23:31:38 +0100 Subject: feat(gui): directory block, re-org of some code (#2314) --- ui/backend/src/pty.rs | 8 ++++++-- ui/backend/src/run/pty.rs | 5 ++++- 2 files changed, 10 insertions(+), 3 deletions(-) (limited to 'ui/backend/src') diff --git a/ui/backend/src/pty.rs b/ui/backend/src/pty.rs index 45502892..af394d95 100644 --- a/ui/backend/src/pty.rs +++ b/ui/backend/src/pty.rs @@ -16,7 +16,7 @@ pub struct Pty { } impl Pty { - pub async fn open<'a>(rows: u16, cols: u16) -> Result { + pub async fn open<'a>(rows: u16, cols: u16, cwd: Option) -> Result { let sys = portable_pty::native_pty_system(); let pair = sys @@ -28,7 +28,11 @@ impl Pty { }) .map_err(|e| eyre!("Failed to open pty: {}", e))?; - let cmd = CommandBuilder::new_default_prog(); + let mut cmd = CommandBuilder::new_default_prog(); + + if let Some(cwd) = cwd { + cmd.cwd(cwd); + } let child = pair.slave.spawn_command(cmd).unwrap(); drop(pair.slave); diff --git a/ui/backend/src/run/pty.rs b/ui/backend/src/run/pty.rs index 58bfccb7..0ca5ece0 100644 --- a/ui/backend/src/run/pty.rs +++ b/ui/backend/src/run/pty.rs @@ -11,9 +11,12 @@ use atuin_client::{database::Sqlite, record::sqlite_store::SqliteStore, settings pub async fn pty_open<'a>( app: tauri::AppHandle, state: State<'a, AtuinState>, + cwd: Option, ) -> Result { let id = uuid::Uuid::new_v4(); - let pty = crate::pty::Pty::open(24, 80).await.unwrap(); + + let cwd = cwd.map(|c|shellexpand::tilde(c.as_str()).to_string()); + let pty = crate::pty::Pty::open(24, 80, cwd).await.unwrap(); let reader = pty.reader.clone(); -- cgit v1.3.1