646dd6bddb219ba53d2205132070f6d0eba797de
[lunaix-os.git] / lunaix-os / uprog / ls.c
1 #include <dirent.h>
2 #include <errno.h>
3 #include <stdio.h>
4
5 int
6 main(int argc, const char* argv[])
7 {
8     const char* path = ".";
9     if (argc > 1) {
10         path = argv[1];
11     }
12
13     DIR* dir = opendir(path);
14
15     if (!dir) {
16         return errno;
17     }
18
19     struct dirent* dent;
20
21     while ((dent = readdir(dir))) {
22         if (dent->d_type == DT_DIR) {
23             printf(" \033[3m%s\033[39;49m\n", dent->d_name);
24         } else if (dent->d_type == DT_SYMLINK) {
25             printf(" \033[13m%s@\033[39;49m\n", dent->d_name);
26         } else {
27             printf(" %s\n", dent->d_name);
28         }
29     }
30
31     closedir(dir);
32
33     return 0;
34 }