diff options
Diffstat (limited to 'user-info/src/lib.rs')
-rw-r--r-- | user-info/src/lib.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/user-info/src/lib.rs b/user-info/src/lib.rs new file mode 100644 index 0000000..bd5ff42 --- /dev/null +++ b/user-info/src/lib.rs @@ -0,0 +1,20 @@ +use nix::unistd::{getuid, User}; + +pub fn get_username() -> Option<String> { + let uid = getuid(); + User::from_uid(uid).ok().flatten().map(|user| user.name) +} + +#[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); + } +} |