diff options
Diffstat (limited to 'src/app/agents.rs')
| -rw-r--r-- | src/app/agents.rs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/app/agents.rs b/src/app/agents.rs index ea828eae..262bb0e4 100644 --- a/src/app/agents.rs +++ b/src/app/agents.rs @@ -97,6 +97,7 @@ impl App { pub(super) fn start_agent( &mut self, params: AgentStartParams, + extra_env: Vec<(String, String)>, ) -> Result<(crate::api::schema::AgentInfo, Vec<String>), AgentStartError> { let name = params.name.trim().to_string(); if name.is_empty() { @@ -145,6 +146,7 @@ impl App { params.split.unwrap_or(SplitDirection::Right), cwd, &argv, + extra_env, focus, )? } else if let Some(workspace_id) = params.workspace_id { @@ -161,10 +163,11 @@ impl App { params.split.unwrap_or(SplitDirection::Right), cwd, &argv, + extra_env, focus, )? } else if self.state.workspaces.is_empty() { - self.spawn_agent_workspace(cwd, rows, cols, &argv, focus)? + self.spawn_agent_workspace(cwd, rows, cols, &argv, extra_env, focus)? } else { let ws_idx = self.state.active.unwrap_or(0); let tab_idx = self.state.workspaces[ws_idx].active_tab; @@ -175,6 +178,7 @@ impl App { params.split.unwrap_or(SplitDirection::Right), cwd, &argv, + extra_env, focus, )? }; @@ -314,9 +318,10 @@ impl App { rows: u16, cols: u16, argv: &[String], + extra_env: Vec<(String, String)>, focus: bool, ) -> Result<(usize, usize, crate::layout::PaneId), AgentStartError> { - let (ws, terminal, runtime) = crate::workspace::Workspace::new_argv_command( + let (ws, terminal, runtime) = crate::workspace::Workspace::new_argv_command_with_extra_env( cwd, rows, cols, @@ -326,6 +331,7 @@ impl App { self.event_tx.clone(), self.render_notify.clone(), self.render_dirty.clone(), + extra_env, ) .map_err(|err| AgentStartError::SpawnFailed(err.to_string()))?; self.terminal_runtimes.insert(terminal.id.clone(), runtime); @@ -350,6 +356,7 @@ impl App { split: SplitDirection, cwd: PathBuf, argv: &[String], + extra_env: Vec<(String, String)>, focus: bool, ) -> Result<(usize, usize, crate::layout::PaneId), AgentStartError> { let (rows, cols) = self.state.estimate_pane_size(); @@ -370,6 +377,7 @@ impl App { cols, Some(cwd), argv, + extra_env, self.state.pane_scrollback_limit_bytes, self.state.host_terminal_theme, focus, |
