diff options
Diffstat (limited to 'user-info')
-rw-r--r-- | user-info/Cargo.toml | 7 | ||||
-rw-r--r-- | user-info/src/lib.rs | 37 |
2 files changed, 0 insertions, 44 deletions
diff --git a/user-info/Cargo.toml b/user-info/Cargo.toml deleted file mode 100644 index 63a3f7c..0000000 --- a/user-info/Cargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "user-info" -version = "0.1.0" -edition = "2021" - -[dependencies] -nix = { version = "0.26.2", default-features = false, features = ["user"] } diff --git a/user-info/src/lib.rs b/user-info/src/lib.rs deleted file mode 100644 index 7a42db9..0000000 --- a/user-info/src/lib.rs +++ /dev/null @@ -1,37 +0,0 @@ -use nix::unistd::{getgroups, getuid, Group, User}; - -pub fn get_username() -> Option<String> { - let uid = getuid(); - User::from_uid(uid).ok().flatten().map(|user| user.name) -} - -pub fn get_user_groups() -> Vec<String> { - let gids = getgroups().unwrap_or(Vec::default()); - gids.into_iter() - .filter_map(|gid| Group::from_gid(gid).ok().flatten()) - .map(|group| group.name) - .collect() -} - -#[cfg(test)] -mod test { - use super::*; - - #[test] - fn it_returns_a_username() { - // We can't get too specific here because this is your actual username, - // but we at lease expect it to be some string, not None. - let username = get_username(); - let username_len = username.unwrap().trim().len(); - assert!(username_len > 0); - } - - #[test] - fn it_returns_some_groups() { - let groups = get_user_groups(); - assert!(groups.len() > 0); - for group in groups { - assert!(group.trim().len() > 0); - } - } -} |