MCPcopy Create free account
hub / github.com/clawshell/clawshell / resolve_hermes_target_user

Function resolve_hermes_target_user

src/main.rs:201–219  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

199/// look at (and write to) the real user's `~/.hermes/`, not root's.
200#[cfg(unix)]
201fn resolve_hermes_target_user() -> Result<(PathBuf, u32, u32), Box<dyn Error>> {
202 if let Ok(user_name) = std::env::var("SUDO_USER")
203 && !user_name.trim().is_empty()
204 && user_name.trim() != "root"
205 && let Ok(Some(user)) = nix::unistd::User::from_name(user_name.trim())
206 {
207 return Ok((user.dir, user.uid.as_raw(), user.gid.as_raw()));
208 }
209
210 let uid = nix::unistd::getuid().as_raw();
211 let gid = nix::unistd::getgid().as_raw();
212 let home = std::env::var_os("HOME")
213 .map(PathBuf::from)
214 .ok_or_else(|| -> Box<dyn Error> {
215 "failed to resolve target user home directory for Hermes skill install (HOME unset)"
216 .into()
217 })?;
218 Ok((home, uid, gid))
219}
220
221#[cfg(not(unix))]
222fn resolve_hermes_target_user() -> Result<(PathBuf, u32, u32), Box<dyn Error>> {

Callers 3

cmd_uninstallFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected