use std::path::PathBuf;
pub fn foreground_process_name(child_pid: u32) -> Option<String> {
let stat = std::fs::read_to_string(format!("/proc/{child_pid}/stat")).ok()?;
let rest = stat.get(stat.rfind(')')? + 2..)?;
let fields: Vec<&str> = rest.split_whitespace().collect();
let tpgid: i32 = fields.get(5)?.parse().ok()?;
if tpgid <= 0 {
return None;
}
let comm = std::fs::read_to_string(format!("/proc/{tpgid}/comm")).ok()?;
Some(comm.trim().to_string())
}
pub fn process_cwd(pid: u32) -> Option<PathBuf> {
if pid == 0 {
return None;
}
std::fs::read_link(format!("/proc/{pid}/cwd")).ok()
}