//! System level helpers. use nix::unistd::{Gid, Group, Uid, User}; /// Query a user by name but only unless built with `#[cfg(test)]`. /// /// This is to avoid having regression tests query the users of development machines which may /// not be compatible with PBS or privileged enough. pub fn query_user(user_name: &str) -> Result, nix::Error> { if cfg!(test) { Ok(Some( User::from_uid(Uid::current())?.expect("current user does not exist"), )) } else { User::from_name(user_name) } } /// Query a group by name but only unless built with `#[cfg(test)]`. /// /// This is to avoid having regression tests query the groups of development machines which may /// not be compatible with PBS or privileged enough. pub fn query_group(group_name: &str) -> Result, nix::Error> { if cfg!(test) { Ok(Some( Group::from_gid(Gid::current())?.expect("current group does not exist"), )) } else { Group::from_name(group_name) } }