diff options
Diffstat (limited to 'crates/dinggerd/src/integrations.rs')
| -rw-r--r-- | crates/dinggerd/src/integrations.rs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/crates/dinggerd/src/integrations.rs b/crates/dinggerd/src/integrations.rs index 5d9cf7a..93f46ce 100644 --- a/crates/dinggerd/src/integrations.rs +++ b/crates/dinggerd/src/integrations.rs @@ -34,11 +34,14 @@ fn pi_extension_path() -> Result<PathBuf, String> { } fn pi_extension_dir() -> Result<PathBuf, String> { - let base = std::env::var_os("PI_CODING_AGENT_DIR") + Ok(pi_agent_dir().ok_or("cannot determine pi agent dir (no HOME)")?.join("extensions")) +} + +/// pi's agent directory: `PI_CODING_AGENT_DIR`, else `~/.pi/agent`. +pub fn pi_agent_dir() -> Option<PathBuf> { + std::env::var_os("PI_CODING_AGENT_DIR") .map(PathBuf::from) .or_else(|| std::env::var_os("HOME").map(|home| PathBuf::from(home).join(".pi").join("agent"))) - .ok_or("cannot determine pi agent dir (no HOME)")?; - Ok(base.join("extensions")) } /// zsh hook: records the command line running in each tmux pane exactly as |
