summaryrefslogtreecommitdiff
path: root/user-info/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'user-info/src/lib.rs')
-rw-r--r--user-info/src/lib.rs20
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);
+ }
+}