summaryrefslogtreecommitdiff
path: root/command/whoami.c
blob: efb80a6878de7febaa3a4322f86fd3cebc40ddcb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include "command.h"
#include "lslib.h"

#include <pwd.h>
#include <stdlib.h>
#include <unistd.h>

static void help(void) {
    printf("Usage: whoami\n\n");
    printf("Print the username associated with the current effective user id\n");
    exit(EXIT_SUCCESS);
}

COMMAND(whoami_main) {

    uid_t usr;
    struct passwd* passwd;

    parse_help(argc, argv, help);

    usr = getuid();
    passwd = getpwuid(usr);
    
    if (passwd == NULL) {
        printf("\x1b[1;91myou do not exist.\n");
    } else {
        printf("%s\n", passwd->pw_name);
    }
    return EXIT_SUCCESS;
}