From b34ba4e25d3e89453349fbabbeba04cd7be9764b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=88=D0=BE=D0=B2=D0=B0=D0=BD=20=D0=82=D0=BE=D0=BA=D0=B8?= =?UTF-8?q?=D1=9B-=D0=A8=D1=83=D0=BC=D0=B0=D1=80=D0=B0=D1=86?= Date: Wed, 12 May 2021 13:08:06 +0000 Subject: [PATCH] Replace fetchy.c --- fetchy.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 56 insertions(+), 11 deletions(-) diff --git a/fetchy.c b/fetchy.c index 7155d6e..cbb3907 100644 --- a/fetchy.c +++ b/fetchy.c @@ -9,6 +9,7 @@ void truncate_spaces_leading(char *str); +void truncate_spaces_trailing(char *str); void read_line(char x); int count_files(char *path); @@ -16,21 +17,55 @@ int count_files(char *path); static char *get_sys(char *sys, char *os_name); static char *get_kernel(char *kern_name); static char *get_uptime(char *uptime); -static int get_packages(char sys); static char *get_RAM(char *ram_info); static char *get_cpu(char *cpuname); -void get_gpu(char *gpu); +static char *get_gpu(char *gpu); +static int get_packages(char sys); int main(int argc, char *argv[]){ - char gpu[70], sys; - char *os_name = NULL, *uptime = NULL, *kern_name = NULL, *ram_info = NULL, *cpu_name = NULL; - char *os = malloc(BUF_SIZE); + char sys; + char *os_name = NULL, *uptime = NULL, *kern_name = NULL, *ram_info = NULL, *cpu_name = NULL, *gpu = 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\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); + } + + - //get_gpu(gpu); os = get_sys(&sys, os_name); @@ -44,8 +79,8 @@ int main(int argc, char *argv[]){ 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", get_cpu(cpu_name)); - printf("\x1b[1m / _.~ ~._^\\ \x1b[36mGPU\x1b[0m -> *W.I.P.*\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("\n\n"); break; @@ -59,7 +94,7 @@ int main(int argc, char *argv[]){ printf("\x1b[1m ,`\\ \\ `-`. \x1b[36mUPTIME\x1b[0m -> %s\n", get_uptime(uptime)); printf("\x1b[1m / \\ '``-. ` \x1b[36mPACKAGES\x1b[0m -> *W.I.P.*\n"); //%d\n", get_packages(sys)); printf("\x1b[1m .-. , `___: \x1b[36m\x1b[0m \n"); - printf("\x1b[1m (:::) : ___ \x1b[36mCPU\x1b[0m -> %s\n", get_cpu(cpu_name)); + 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"); @@ -80,6 +115,8 @@ int main(int argc, char *argv[]){ free(ram_info); free(kern_name); free(cpu_name); + free(gpu); + free(cache_path); return 0; } @@ -162,11 +199,19 @@ static char *get_cpu(char *cpu_name){ } -void get_gpu(char *gpu){ +static char *get_gpu(char *gpu){ + + gpu = malloc(BUF_SIZE * 3); FILE *gpuName = popen("lspci -v | grep VGA -m 1 | awk -F'[' '{ print $2 }' | awk -F']' '{ print $1 }' ", "r"); fscanf(gpuName, "%[^\n]%s", gpu); + + truncate_spaces_leading(gpu); + truncate_spaces_trailing(gpu); + fclose(gpuName); + + return gpu; } @@ -259,7 +304,7 @@ static char *get_RAM(char *ram_info){ used = total - free_mem; real_percent = (used / total) * 100; - bar_percent = round(real_percent / 10); + bar_percent = (real_percent / 10 + 0.35); for( int i = 1; i <= bar_percent; i++){ bar[i] = '*';