diff --git a/ascii.h b/ascii.h index 2a02d41..13a31cd 100644 --- a/ascii.h +++ b/ascii.h @@ -1 +1,41 @@ -TEST +char artix [14][100] = { + " .cc' ", + " .cccc. ", + " cccccc. ", + " :ccccccc. ", + " ;ccccccccc ", + " .;cccccc: ", + " .. .;cccc; ", + " 'cccc;.. .,cc; ", + " 'ccccccccc:'. '' ", + " .cccccccccccccc:;. ", + " .cccccccccccccc:,. . ", + " ccccccccccc;'. .;cc. ", + " :ccc:'. .';ccccc ", + " ;;.. .';: " + +}; + + + +char arch [19][100] = { + " ▄ ", + " ▟█▙ ", + " ▟███▙ ", + " ▟█████▙ ", + " ▟███████▙ ", + " ▂▔▀▜██████▙ ", + " ▟██▅▂▝▜█████▙ ", + " ▟█████████████▙ ", + " ▟███████████████▙ ", + " ▟█████████████████▙ ", + " ▟███████████████████▙ ", + " ▟█████████▛▀▀▜████████▙ ", + " ▟████████▛ ▜███████▙ ", + " ▟█████████ ████████▙ ", + " ▟██████████ █████▆▅▄▃▂ ", + " ▟██████████▛ ▜█████████▙ ", + " ▟██████▀▀▀ ▀▀██████▙ ", + " ▟███▀▘ ▝▀███▙ ", + " ▟▛▀ ▀▜▙ " + }; \ No newline at end of file diff --git a/fetchy b/fetchy index e2a8e73..199f83e 100755 Binary files a/fetchy and b/fetchy differ diff --git a/fetchy.c b/fetchy.c index 9713ade..59be404 100644 --- a/fetchy.c +++ b/fetchy.c @@ -4,13 +4,15 @@ #include #include #include +#include "ascii.h" -#define BUF_SIZE 20 +#define BUF_SIZE 50 void truncate_spaces_leading(char *str); void truncate_spaces_trailing(char *str); void read_line(char x); +void cache_info(char *cache_path, char **cpu_name, char **gpu); static int count_files(DIR *package_dir); @@ -20,89 +22,67 @@ static char *get_uptime(char *uptime); static char *get_RAM(char *ram_info); static char *get_cpu(char *cpuname); static char *get_gpu(char *gpu); -static int get_packages(char sys); - +static char *get_packages(char *package_count, char sys); +void concatenate_and_print(char *ascii, int line_n); int main(int argc, char *argv[]){ char sys; - char *os_name = NULL, *uptime = NULL, *kern_name = NULL, *ram_info = NULL, *cpu_name = NULL, *gpu = NULL; + char *os_name = NULL, *uptime = NULL, *kern_name = NULL, *ram_info = NULL, *cpu_name = NULL, *gpu = NULL, *package_count = NULL; char *os = malloc(BUF_SIZE), *cache_path = malloc(BUF_SIZE * 2); - snprintf(cache_path, BUF_SIZE * 2, "%s/.local/share/fetchy.cache", getenv("HOME")); - FILE *FCache = NULL; - - if( (FCache = fopen(cache_path, "r")) ){ - cpu_name = malloc(BUF_SIZE * 4); - gpu = malloc(BUF_SIZE * 4); - - char *line = malloc(BUF_SIZE * 4); - - fgets(line, BUF_SIZE * 4, FCache); - snprintf(cpu_name, BUF_SIZE * 4, "%s", strchr(line, ':') +2); - truncate_spaces_trailing(cpu_name); - - fgets(line, BUF_SIZE * 4, FCache); - snprintf(gpu, BUF_SIZE * 4, "%s", strchr(line, ':') +2); - truncate_spaces_trailing(gpu); - - fclose(FCache); - free(line); - } - - else { - - FCache = fopen(cache_path, "w"); - fprintf(FCache, "CPU : %s\n", get_cpu(cpu_name)); - fprintf(FCache, "GPU : %s\n", get_gpu(gpu)); - fclose(FCache); - - printf("\n\aFILE CACHING DONE!! \n\nValues returned : \nCPU -> %s\nGPU -> %s\n\n Caching occurs only once, every subsequent execution will run program normally. Enjoy!\n\n", get_cpu(cpu_name), get_gpu(gpu)); - - exit(0); - } - - - - + cache_info(cache_path, &cpu_name, &gpu); os = get_sys(&sys, os_name); + switch(sys){ + case 'x': case 'a': printf("\n"); - printf("\x1b[1m . \x1b[36mOS\x1b[0m -> %s\n", os); - printf("\x1b[1m / \\ \x1b[36mKRNL\x1b[0m -> %s\n", get_kernel(kern_name)); - printf("\x1b[1m / \\ \x1b[36mUPT\x1b[0m -> %s\n", get_uptime(uptime)); - printf("\x1b[1m /^. \\ \x1b[36mPKGS\x1b[0m -> %d\n", get_packages(sys)); - printf("\x1b[1m / .-. \\ \x1b[36m\x1b[0m \n"); - printf("\x1b[1m / ( ) _\\ \x1b[36mCPU\x1b[0m -> %s\n", cpu_name); - printf("\x1b[1m / _.~ ~._^\\ \x1b[36mGPU\x1b[0m -> %s\n", gpu); - printf("\x1b[1m /.^ ^.\\ \x1b[36mRAM\x1b[0m -> %s\n", get_RAM(ram_info)); + printf("\x1b[1m . %s\n", os); + printf("\x1b[1m / \\ %s\n", get_kernel(kern_name)); + printf("\x1b[1m / \\ %s\n", get_uptime(uptime)); + printf("\x1b[1m /^. \\ %s\n", get_packages(package_count, sys)); + printf("\x1b[1m / .-. \\ \n"); + printf("\x1b[1m / ( ) _\\ %s\n", cpu_name); + printf("\x1b[1m / _.~ ~._^\\ %s\n", gpu); + printf("\x1b[1m /.^ ^.\\ %s\n", get_RAM(ram_info)); printf("\n\n"); + + break; case 'u': printf("\n"); - printf("\x1b[1m .-. \x1b[36mOS\x1b[0m -> %s\n", os); - printf("\x1b[1m .-'``(|||) \x1b[36mKERNEL\x1b[0m -> %s\n", get_kernel(kern_name)); - printf("\x1b[1m ,`\\ \\ `-`. \x1b[36mUPTIME\x1b[0m -> %s\n", get_uptime(uptime)); - printf("\x1b[1m / \\ '``-. ` \x1b[36mPACKAGES\x1b[0m -> %s\n", get_packages(sys)); //%d\n", get_packages(sys)); - printf("\x1b[1m .-. , `___: \x1b[36m\x1b[0m \n"); - printf("\x1b[1m (:::) : ___ \x1b[36mCPU\x1b[0m -> %s\n", cpu_name); - printf("\x1b[1m `-` ` , : \x1b[36mGPU\x1b[0m -> %s\n", gpu); - printf("\x1b[1m \\ / ,..-` , \x1b[36mRAM\x1b[0m -> %s\n", get_RAM(ram_info)); - printf("\x1b[1m `./ / .-.` \x1b[36m\x1b[0m \n"); - printf("\x1b[1m `-..-( ) \x1b[36m\x1b[0m \n"); - printf("\x1b[1m `-` \x1b[36m\x1b[0m \n"); + printf("\x1b[1m .-. %s\n", os); + printf("\x1b[1m .-'``(|||) %s\n", get_kernel(kern_name)); + printf("\x1b[1m ,`\\ \\ `-`. %s\n", get_uptime(uptime)); + printf("\x1b[1m / \\ '``-. ` %s\n", get_packages(package_count, sys)); //%d\n", get_packages(sys)); + printf("\x1b[1m .-. , `___: \n"); + printf("\x1b[1m (:::) : ___ %s\n", cpu_name); + printf("\x1b[1m `-` ` , : %s\n", gpu); + printf("\x1b[1m \\ / ,..-` , %s\n", get_RAM(ram_info)); + printf("\x1b[1m `./ / .-.` \n"); + printf("\x1b[1m `-..-( ) \n"); + printf("\x1b[1m `-` \n"); printf("\n\n"); break; + + /* case 'x': + + strcat(artix[3], os); + + for (int i = 0; i < 14; i++) + printf("%s\n", artix[i]); + +*/ default: printf("\n\n ERROR : Unsupported system\n\n"); exit(-1); @@ -110,13 +90,7 @@ int main(int argc, char *argv[]){ - free(os_name); - free(uptime); - free(ram_info); - free(kern_name); - free(cpu_name); - free(gpu); - free(cache_path); + free(os_name); free(uptime); free(ram_info); free(kern_name); free(cpu_name); free(gpu); free(cache_path); free(package_count); return 0; } @@ -164,6 +138,43 @@ void truncate_spaces_trailing(char *str){ } +void cache_info(char *cache_path, char **cpu_name, char **gpu){ + + snprintf(cache_path, BUF_SIZE * 2, "%s/.local/share/fetchy.cache", getenv("HOME")); + FILE *FCache = NULL; + + if( (FCache = fopen(cache_path, "r")) ){ + *cpu_name = malloc(BUF_SIZE * 4); + *gpu = malloc(BUF_SIZE * 4); + + char *line = malloc(BUF_SIZE * 4); + + fgets(line, BUF_SIZE * 4, FCache); + snprintf(*cpu_name, BUF_SIZE * 4, "\x1b[36mCPU\x1b[0m -> %s", strchr(line, ':') +2); + truncate_spaces_trailing(*cpu_name); + + fgets(line, BUF_SIZE * 4, FCache); + snprintf(*gpu, BUF_SIZE * 4, "\x1b[36mGPU\x1b[0m -> %s", strchr(line, ':') +2); + truncate_spaces_trailing(*gpu); + + fclose(FCache); + free(line); + } + + else { + + FCache = fopen(cache_path, "w"); + fprintf(FCache, "CPU : %s\n", get_cpu(*cpu_name)); + fprintf(FCache, "GPU : %s\n", get_gpu(*gpu)); + fclose(FCache); + + printf("\n\aFILE CACHING DONE!! \n\nValues returned : \nCPU -> %s\nGPU -> %s\n\n Caching occurs only once, every subsequent execution will run program normally. Enjoy!\n\n", get_cpu(*cpu_name), get_gpu(*gpu)); + + free(*cpu_name); free(*gpu); + exit(0); + } +} + static int count_files(DIR *package_dir){ struct dirent * entry; @@ -190,9 +201,10 @@ static char *get_sys(char *sys, char *os_name){ fclose(sysName); truncate_spaces_leading(name); - snprintf(os_name, BUF_SIZE, "%s Linux", name); + snprintf(os_name, BUF_SIZE, "\x1b[36mOS\x1b[0m -> %s Linux", name); if ( !strcmp( name, "Arch")) *sys = 'a'; + if ( !strcmp( name, "Artix")) *sys = 'x'; if ( !strcmp( name, "Ubuntu")) *sys = 'u'; free(name); @@ -247,7 +259,7 @@ static char *get_kernel(char *kern_name){ fclose(kInfo); truncate_spaces_leading(kernel); - snprintf(kern_name, BUF_SIZE + 5, "Linux %s", kernel); + snprintf(kern_name, BUF_SIZE + 5, "\x1b[36mKRNL\x1b[0m -> Linux %s", kernel); free(kernel); return kern_name; @@ -265,16 +277,16 @@ static char *get_uptime(char *uptime){ hr = (sec/60/60%24); min = (sec/60%60); - snprintf(uptime, BUF_SIZE, "%dh, %dmin", hr, min); + snprintf(uptime, BUF_SIZE, "\x1b[36mUPT\x1b[0m -> %dh, %dmin", hr, min); return uptime; } -static int get_packages(char sys){ +static char *get_packages(char *package_count, char sys){ //DIR *package_dir; int pkg_count = 0; - + package_count = malloc(BUF_SIZE); switch (sys){ case 'a': @@ -287,7 +299,10 @@ static int get_packages(char sys){ printf("\n\n\aUnable to find package list\n\n"); } - return pkg_count; + snprintf(package_count, BUF_SIZE, "\x1b[36mPKGS\x1b[0m -> %d", pkg_count); + + + return package_count; } @@ -323,10 +338,26 @@ static char *get_RAM(char *ram_info){ bar[i] = '*'; } - snprintf(ram_info, BUF_SIZE * 3, "%.2f GB of %.2f GB, %s -> %.2f %%", used / 1000000, total / 1000000, bar, real_percent); + snprintf(ram_info, BUF_SIZE * 3, "\x1b[36mRAM\x1b[0m -> %.2f GB of %.2f GB, %s -> %.2f %%", used / 1000000, total / 1000000, bar, real_percent); free(line); return ram_info; } + + +/*void concatenate_and_print(char *ascii, int line_n){ + + strcat(ascii[0], os); + strcat(ascii[1], os); + strcat(ascii[2], os); + strcat(ascii[3], os); + strcat(ascii[4], os); + strcat(ascii[5], os); + strcat(ascii[6], os); + strcat(ascii[7], os); + + for (int i = 0; i < line_n ; i++) + printf("%s\n", artix[i]); +}*/ \ No newline at end of file