diff --git a/fetchy.c b/fetchy.c index d38c16b..bf41dbb 100644 --- a/fetchy.c +++ b/fetchy.c @@ -11,59 +11,68 @@ void truncate_spaces_leading(char *str); void read_line(char x); int count_files(char *path); -static char *get_sys(char *sys); -static char *get_kernel(void); -static char *get_uptime(void); + +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(void); -static char *get_cpu(void); -void get_gpu(char gpu[]); +static char *get_RAM(char *ram_info); +static char *get_cpu(char *cpuname); +void get_gpu(char *gpu); -char *os_name = NULL, *uptime = NULL, *kern_name = NULL, *ram_info = NULL, *cpu_name = NULL; - 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); + + get_gpu(gpu); - os = get_sys(&sys); + os = get_sys(&sys, os_name); - if ( sys == 'a' ) { - - printf("\n"); - printf("\x1b[1m . \x1b[36mOS\x1b[0m -> %s\n", os); - printf("\x1b[1m / \\ \x1b[36mKRNL\x1b[0m -> %s\n", get_kernel()); - printf("\x1b[1m / \\ \x1b[36mUPT\x1b[0m -> %s\n", get_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()); - printf("\x1b[1m / _.~ ~._^\\ \x1b[36mGPU\x1b[0m -> %s\n", gpu); - printf("\x1b[1m /.^ ^.\\ \x1b[36mRAM\x1b[0m -> %s\n", get_RAM()); - printf("\n\n"); - } - - - if ( sys == 'u' ) { - - printf("\n"); - printf("\x1b[1m .-. \x1b[36mOS\x1b[0m -> %s\n", get_sys(&sys)); - printf("\x1b[1m .-'``(|||) \x1b[36mKERNEL\x1b[0m -> %s\n", get_kernel()); - printf("\x1b[1m ,`\\ \\ `-`. \x1b[36mUPTIME\x1b[0m -> %s\n", get_uptime()); - printf("\x1b[1m / \\ '``-. ` \x1b[36mPACKAGES\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()); - printf("\x1b[1m `-` ` , : \x1b[36mGPU\x1b[0m -> %s\n", gpu); - printf("\x1b[1m \\ / ,..-` , \x1b[36mRAM\x1b[0m -> %s\n", get_RAM()); - 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("\n\n"); + switch(sys){ + 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", get_cpu(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; + + + 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 -> %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 -> %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("\n\n"); + break; + + default: + printf("\n\n ERROR : Unsupported system\n\n"); + exit(-1); } + free(os_name); free(uptime); @@ -82,7 +91,6 @@ void read_line(char x){ } - void truncate_spaces_leading(char *str){ int src = 0, dst = 0; while(*(str + dst) == ' ') dst++; @@ -98,6 +106,7 @@ void truncate_spaces_leading(char *str){ *(str + src) = '\0'; } + void truncate_spaces_trailing(char *str){ int index, i = -1; @@ -114,7 +123,8 @@ void truncate_spaces_trailing(char *str){ str[index + 1] = '\0'; } -static char *get_sys(char *sys){ + +static char *get_sys(char *sys, char *os_name){ os_name = malloc(BUF_SIZE); char *name = malloc(BUF_SIZE); FILE *sysName = fopen("/etc/issue", "rt"); @@ -133,7 +143,7 @@ static char *get_sys(char *sys){ } -static char *get_cpu(void){ +static char *get_cpu(char *cpu_name){ char *line = malloc(BUF_SIZE * 4); cpu_name = malloc(BUF_SIZE * 4); FILE *cpu = fopen("/proc/cpuinfo", "rt"); @@ -150,7 +160,8 @@ static char *get_cpu(void){ return cpu_name; } -void get_gpu(char gpu[]){ + +void get_gpu(char *gpu){ FILE *gpuName = popen("lspci -v | grep VGA -m 1 | awk -F'[' '{ print $2 }' | awk -F']' '{ print $1 }' ", "r"); fscanf(gpuName, "%[^\n]%s", gpu); @@ -158,8 +169,7 @@ void get_gpu(char gpu[]){ } - -static char *get_kernel(void){ +static char *get_kernel(char *kern_name){ kern_name = malloc(BUF_SIZE); char *kernel = malloc(BUF_SIZE); FILE *kInfo = fopen("/proc/version", "rt"); @@ -174,7 +184,8 @@ static char *get_kernel(void){ return kern_name; } -static char *get_uptime(void){ + +static char *get_uptime(char *uptime){ int sec, hr, min; FILE *FUp = fopen("/proc/uptime", "rt"); uptime = malloc(BUF_SIZE); @@ -189,6 +200,7 @@ static char *get_uptime(void){ return uptime; } + static int get_packages(char sys){ DIR *packageDir; @@ -221,7 +233,8 @@ static int get_packages(char sys){ } -static char *get_RAM(){ + +static char *get_RAM(char *ram_info){ int bar_percent; float total, free_mem, used; float real_percent; @@ -258,6 +271,3 @@ static char *get_RAM(){ } - - -