diff --git a/Makefile b/Makefile index d5bda47..a143f03 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ NAME = uwufetch FILES = uwufetch.c CFLAGS = -O3 -CFLAGS_DEBUG = -Wall -Wextra +CFLAGS_DEBUG = -Wall -Wextra -g -pthread ifeq ($(shell uname), Linux) PREFIX = /usr/bin LIBDIR = /usr/lib @@ -11,9 +11,16 @@ else ifeq ($(shell uname), Darwin) LIBDIR = /usr/local/lib MANDIR = /usr/local/share/man/man1 endif + CC = cc MAN_COMPILER = pandoc +ifeq ($(shell uname), FreeBSD) + CFLAGS += -D__FREEBSD__ + CFLAGS_DEBUG += -D__FREEBSD__ +endif + + build: $(FILES) $(CC) $(CFLAGS) -o $(NAME) $(FILES) diff --git a/res/COPYRIGHT.md b/res/COPYRIGHT.md index e9617af..69aa891 100644 --- a/res/COPYRIGHT.md +++ b/res/COPYRIGHT.md @@ -67,7 +67,7 @@ I am not a copyright expert, and maybe I am doing all wrong things, please corre ## Endeavour OS -image +image ### Base artwork: @@ -218,7 +218,7 @@ I am not a copyright expert, and maybe I am doing all wrong things, please corre ## OpenSuse -image +image ### Base artwork: @@ -332,7 +332,7 @@ I am not a copyright expert, and maybe I am doing all wrong things, please corre ## VoidLinux -image +image ### Base artwork: diff --git a/uwufetch.c b/uwufetch.c index e00df96..3941508 100644 --- a/uwufetch.c +++ b/uwufetch.c @@ -23,8 +23,10 @@ #include #include #else +#ifndef __FREEBSD__ #include #endif +#endif #include #include @@ -65,8 +67,10 @@ struct package_manager }; struct utsname sys_var; #ifndef __APPLE__ +#ifdef __linux__ struct sysinfo sys; #endif +#endif struct winsize win; int iscygwin = 0; @@ -153,7 +157,7 @@ int main(int argc, char *argv[]) parse_config(); if ((argc == 1 && ascii_image_flag == 0) || (argc > 1 && ascii_image_flag == 0)) { - printf("\n"); // print a new line + printf("\n"); // print a new line printf("\033[1A"); // go up one line if possible print_ascii(); } @@ -342,20 +346,22 @@ void print_info() #ifdef __APPLE__ uptime = uptime_mac(); #else +#ifndef __FREEBSD__ uptime = sys.uptime; +#endif #endif switch (uptime) { - case 0 ... 3599: - printf("\033[18C%s%sUWUPTIME %s%lim\n", + case 0 ... 3599: + printf("\033[18C%s%sUWUPTIME %s%lim\n", NORMAL, BOLD, NORMAL, uptime / 60 % 60); - break; - case 3600 ... 86399: - printf("\033[18C%s%sUWUPTIME %s%lih, %lim\n", + break; + case 3600 ... 86399: + printf("\033[18C%s%sUWUPTIME %s%lih, %lim\n", NORMAL, BOLD, NORMAL, uptime / 3600, uptime / 60 % 60); - break; - default: - printf("\033[18C%s%sUWUPTIME %s%lid, %lih, %lim\n", + break; + default: + printf("\033[18C%s%sUWUPTIME %s%lid, %lih, %lim\n", NORMAL, BOLD, NORMAL, uptime / 86400, uptime / 3600 % 24, uptime / 60 % 60); } } @@ -374,7 +380,11 @@ void get_info() // os version, cpu and board info FILE *os_release = fopen("/etc/os-release", "r"); +#ifndef __FREEBSD__ FILE *cpuinfo = fopen("/proc/cpuinfo", "r"); +#else + FILE *cpuinfo = popen("sysctl -a | egrep -i 'hw.model'", "r"); +#endif FILE *host_model_info = fopen("/sys/devices/virtual/dmi/id/product_version", "r"); #ifdef __CYGWIN__ iscygwin = 1; @@ -397,7 +407,11 @@ void get_info() } } while (fgets(line, sizeof(line), cpuinfo)) +#ifdef __FREEBSD__ + if (sscanf(line, "hw.model: %[^\n]", cpu_model)) +#else if (sscanf(line, "model name : %[^\n]", cpu_model)) +#endif break; sprintf(user, "%s", getenv("USER")); if (iscygwin == 0) @@ -422,9 +436,11 @@ void get_info() while (fgets(line, sizeof(line), host_model_info)) if (sscanf(line, "%[^\n]", host_model)) break; +#ifndef __FREEBSD__ while (fgets(line, sizeof(line), cpuinfo)) if (sscanf(line, "Hardware : %[^\n]", cpu_model)) break; +#endif } else if (library) // macOS { @@ -439,7 +455,9 @@ void get_info() else sprintf(version_name, "unknown"); } +#ifndef __FREEBSD__ fclose(cpuinfo); +#endif gethostname(host, 256); sscanf(getenv("SHELL"), "%s", shell); if (strlen(shell) > 16) @@ -451,7 +469,9 @@ void get_info() // system resources uname(&sys_var); #ifndef __APPLE__ +#ifndef __FREEBSD__ sysinfo(&sys); // somehow this function has to be called again in print_info() +#endif #endif truncate_name(sys_var.release); @@ -897,21 +917,23 @@ void usage(char *arg) void uwu_kernel() { - #define KERNEL_TO_UWU(str, original, uwufied) \ - if (strcmp(str, original) == 0) \ - sprintf(str, "%s", uwufied) +#define KERNEL_TO_UWU(str, original, uwufied) \ + if (strcmp(str, original) == 0) \ + sprintf(str, "%s", uwufied) char *temp_kernel = kernel; char *token; char splitted[16][128] = {}; int count = 0; - while((token = strsep(&temp_kernel, " "))) { + while ((token = strsep(&temp_kernel, " "))) + { strcpy(splitted[count], token); count++; } strcpy(kernel, ""); - for(int i = 0;i < 16;i++) { + for (int i = 0; i < 16; i++) + { // kernel name KERNEL_TO_UWU(splitted[i], "Linux", "Linuwu"); @@ -950,10 +972,11 @@ void uwu_kernel() // Windows KERNEL_TO_UWU(splitted[i], "windows", "WinyandOwOws"); - if(i != 0) strcat(kernel, " "); + if (i != 0) + strcat(kernel, " "); strcat(kernel, splitted[i]); } - #undef KERNEL_TO_UWU +#undef KERNEL_TO_UWU } void uwu_name()