diff options
Diffstat (limited to 'src/commands/whoami.c')
-rw-r--r-- | src/commands/whoami.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/commands/whoami.c b/src/commands/whoami.c new file mode 100644 index 0000000..efc9bcd --- /dev/null +++ b/src/commands/whoami.c @@ -0,0 +1,24 @@ +#include "../command.h" + +#include <pwd.h> +#include <sys/types.h> +#include <unistd.h> + +static void help() { + printf("Usage: whoami\n\n"); + printf("Print the username associated with the current effective user id\n"); + exit(EXIT_SUCCESS); +} + +COMMAND(whoami) { + if (argc > 0 && streql("--help", argv[0])) help(); + + uid_t usr = getuid(); + struct passwd* passwd = getpwuid(usr); + if (passwd == NULL) { + printf("\x1b[1;91myou do not exist.\n"); + } else { + printf("%s\n", passwd->pw_name); + } + return EXIT_SUCCESS; +} |