aboutsummaryrefslogtreecommitdiff
path: root/crates/dinggerd/src/integrations.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/dinggerd/src/integrations.rs')
-rw-r--r--crates/dinggerd/src/integrations.rs9
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