summaryrefslogtreecommitdiff
path: root/src/platform/linux.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-07-16 02:39:58 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-07-16 02:40:39 +0300
commit947328fa79fcefd2fa8087de014168d46a641312 (patch)
tree15d89163b821dcbd11a05460047e0ccd52e1b66c /src/platform/linux.rs
parenta22454f27ce096585e19d1787dba43f56d1505cf (diff)
feat(macos): support agent environment hints
refs https://github.com/ogulcancelik/herdr/discussions/679
Diffstat (limited to 'src/platform/linux.rs')
-rw-r--r--src/platform/linux.rs31
1 files changed, 1 insertions, 30 deletions
diff --git a/src/platform/linux.rs b/src/platform/linux.rs
index e700a7ff..48f1ef1c 100644
--- a/src/platform/linux.rs
+++ b/src/platform/linux.rs
@@ -280,18 +280,7 @@ pub fn process_agent_hint(pid: u32) -> Option<crate::detect::Agent> {
return None;
}
let environ = std::fs::read(format!("/proc/{pid}/environ")).ok()?;
- parse_agent_env_hint(&environ)
-}
-
-fn parse_agent_env_hint(environ: &[u8]) -> Option<crate::detect::Agent> {
- for record in environ.split(|&byte| byte == 0) {
- let Some(value) = record.strip_prefix(b"HERDR_AGENT=") else {
- continue;
- };
- let value = std::str::from_utf8(value).ok()?;
- return crate::detect::parse_agent_label(value);
- }
- None
+ super::parse_agent_env_hint(&environ)
}
pub fn session_processes(child_pid: u32) -> Vec<u32> {
@@ -809,24 +798,6 @@ mod tests {
}
#[test]
- fn parse_agent_env_hint_accepts_known_agents() {
- assert_eq!(
- parse_agent_env_hint(b"PATH=/bin\0HERDR_AGENT=claude\0TERM=xterm\0"),
- Some(crate::detect::Agent::Claude)
- );
- assert_eq!(
- parse_agent_env_hint(b"HERDR_AGENT=codex"),
- Some(crate::detect::Agent::Codex)
- );
- }
-
- #[test]
- fn parse_agent_env_hint_ignores_missing_or_unknown_agents() {
- assert_eq!(parse_agent_env_hint(b"PATH=/bin\0TERM=xterm\0"), None);
- assert_eq!(parse_agent_env_hint(b"HERDR_AGENT=not-an-agent\0"), None);
- }
-
- #[test]
fn clipboard_commands_prefer_wayland_when_available() {
let _guard = env_lock().lock().unwrap();
unsafe {