Replace fetchy.c
This commit is contained in:
parent
f62afcca8e
commit
b59c2bdaf3
205
fetchy.c
205
fetchy.c
|
@ -1,54 +1,54 @@
|
|||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include <dirent.h>
|
||||
|
||||
char dump[1];
|
||||
|
||||
void getSys(char syst[], char *sys);
|
||||
void getCPU(char cpu[]);
|
||||
void getGPU(char gpu[]);
|
||||
void getKernel(char kernel[]);
|
||||
void getUptime(int *hr, int *min);
|
||||
void getPackages(int *pkgs, char sys);
|
||||
void getRAM(float *total, float *used, char bar[]);
|
||||
#define BUF_SIZE 20
|
||||
|
||||
|
||||
void init(char gpu[], char cpu[], char kernel[], char syst[], char *sys, int *hr, int *min, int *pkgs, float *total, float *used, char bar[]){
|
||||
|
||||
getSys(syst, sys);
|
||||
getGPU(gpu);
|
||||
getCPU(cpu);
|
||||
getKernel(kernel);
|
||||
getUptime(hr, min);
|
||||
getPackages(pkgs, *sys);
|
||||
getRAM(total, used, bar);
|
||||
}
|
||||
void truncate_spaces(char *str);
|
||||
static char *get_sys(char *sys);
|
||||
void get_cpu(char cpu[]);
|
||||
void get_gpu(char gpu[]);
|
||||
static char *get_kernel(void);
|
||||
static char *get_uptime(void);
|
||||
static int get_packages(char sys);
|
||||
void get_RAM(float *total, float *used, char bar[]);
|
||||
|
||||
|
||||
|
||||
char *os_name = NULL, *uptime = NULL, *kern_name = NULL;
|
||||
|
||||
|
||||
int main(int argc, char *argv[]){
|
||||
|
||||
|
||||
int hr = 0, min = 0, pkgs = 0;
|
||||
char kernel[50], cpu[70], gpu[70], syst[20], sys;
|
||||
|
||||
char cpu[70], gpu[70], sys;
|
||||
char bar[] = "[----------]";
|
||||
float total = 0, used = 0;
|
||||
|
||||
init(gpu, cpu, kernel, syst, &sys, &hr, &min, &pkgs, &total, &used, bar);
|
||||
|
||||
//These get info
|
||||
|
||||
get_gpu(gpu);
|
||||
get_cpu(cpu);
|
||||
get_RAM(&total, &used, bar);
|
||||
|
||||
|
||||
|
||||
if ( !strcmp(argv[1], "-arch") ) {
|
||||
|
||||
printf("\n");
|
||||
printf("\x1b[1m . \x1b[36mOS\x1b[0m: %s Linux\n", syst);
|
||||
printf("\x1b[1m / \\ \x1b[36mKERNEL\x1b[0m: %s\n", kernel);
|
||||
printf("\x1b[1m / \\ \x1b[36mUPTIME\x1b[0m: %dh, %dm\n", hr, min);
|
||||
printf("\x1b[1m /^. \\ \x1b[36mPACKAGES\x1b[0m: %d\n", pkgs);
|
||||
printf("\x1b[1m . \x1b[36mOS\x1b[0m -> %s\n", get_sys(&sys));
|
||||
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", cpu);
|
||||
printf("\x1b[1m / _.~ ~._^\\ \x1b[36mGPU\x1b[0m: %s\n", gpu);
|
||||
printf("\x1b[1m /.^ ^.\\ \x1b[36mRAM\x1b[0m: %.2f GB of %.2f GB, %s -> %.2f %%\n", used / 1000000, total / 1000000, bar, (used/total) * 100);
|
||||
printf("\x1b[1m / ( ) _\\ \x1b[36mCPU\x1b[0m -> %s\n", cpu);
|
||||
printf("\x1b[1m / _.~ ~._^\\ \x1b[36mGPU\x1b[0m -> %s\n", gpu);
|
||||
printf("\x1b[1m /.^ ^.\\ \x1b[36mRAM\x1b[0m -> %.2f GB of %.2f GB, %s -> %.2f %%\n", used / 1000000, total / 1000000, bar, (used/total) * 100);
|
||||
printf("\n\n");
|
||||
}
|
||||
|
||||
|
@ -56,14 +56,14 @@ int main(int argc, char *argv[]){
|
|||
if ( !strcmp(argv[1], "-ubuntu") ) {
|
||||
|
||||
printf("\n");
|
||||
printf("\x1b[1m .-. \x1b[36mOS\x1b[0m: %s Linux\n", syst);
|
||||
printf("\x1b[1m .-'``(|||) \x1b[36mKERNEL\x1b[0m: %s\n", kernel);
|
||||
printf("\x1b[1m ,`\\ \\ `-`. \x1b[36mUPTIME\x1b[0m: %dh, %dm\n", hr, min);
|
||||
printf("\x1b[1m / \\ '``-. ` \x1b[36mPACKAGES\x1b[0m: %d\n", pkgs);
|
||||
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", cpu);
|
||||
printf("\x1b[1m `-` ` , : \x1b[36mGPU\x1b[0m: %s\n", gpu);
|
||||
printf("\x1b[1m \\ / ,..-` , \x1b[36mRAM\x1b[0m: %.2f GB of %.2f GB, %s -> %.2f %%\n", used / 1000000, total / 1000000, bar, (used/total) * 100);
|
||||
printf("\x1b[1m (:::) : ___ \x1b[36mCPU\x1b[0m -> %s\n", cpu);
|
||||
printf("\x1b[1m `-` ` , : \x1b[36mGPU\x1b[0m -> %s\n", gpu);
|
||||
printf("\x1b[1m \\ / ,..-` , \x1b[36mRAM\x1b[0m -> %.2f GB of %.2f GB, %s -> %.2f %%\n", used / 1000000, total / 1000000, bar, (used/total) * 100);
|
||||
printf("\x1b[1m `./ / .-.` \x1b[36m\x1b[0m \n");
|
||||
printf("\x1b[1m `-..-( ) \x1b[36m\x1b[0m \n");
|
||||
printf("\x1b[1m `-` \x1b[36m\x1b[0m \n");
|
||||
|
@ -71,34 +71,58 @@ int main(int argc, char *argv[]){
|
|||
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
free(os_name);
|
||||
free(uptime);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void truncate_spaces(char *str) {
|
||||
int src = 0, dst = 0;
|
||||
while(*(str + dst) == ' ') dst++;
|
||||
|
||||
while(*(str + dst) != '\0') {
|
||||
*(str + src) = *(str + dst);
|
||||
if(*(str + (dst++)) == ' ')
|
||||
while(*(str + dst) == ' ') dst++;
|
||||
|
||||
src++;
|
||||
}
|
||||
|
||||
*(str + src) = '\0';
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void getSys(char syst[], char *sys){
|
||||
static char *get_sys(char *sys){
|
||||
os_name = malloc(BUF_SIZE);
|
||||
char *name = malloc(BUF_SIZE);
|
||||
FILE *sysName = fopen("/etc/issue", "r");
|
||||
|
||||
fscanf(sysName, "%s ", syst);
|
||||
|
||||
fscanf(sysName, "%s ", name);
|
||||
fclose(sysName);
|
||||
|
||||
if ( !strcmp( syst, "Arch")) *sys = 'a';
|
||||
|
||||
if ( !strcmp( syst, "Ubuntu")) *sys = 'u';
|
||||
snprintf(os_name, BUF_SIZE, "%s Linux", name );
|
||||
|
||||
if ( !strcmp( name, "Arch"))
|
||||
*sys = 'a';
|
||||
if ( !strcmp( name, "Ubuntu"))
|
||||
*sys = 'u';
|
||||
|
||||
|
||||
free(name);
|
||||
truncate_spaces(os_name);
|
||||
return os_name;
|
||||
}
|
||||
|
||||
|
||||
void getCPU(char cpu[]){
|
||||
void get_cpu(char cpu[]){
|
||||
FILE *cpuName = popen("grep -m 1 name /proc/cpuinfo | awk -F':' '{print $2}' | cut -c 2- ", "r");
|
||||
|
||||
fscanf(cpuName, "%[^\n]%s", cpu);
|
||||
fclose(cpuName);
|
||||
}
|
||||
|
||||
void getGPU(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);
|
||||
|
@ -107,54 +131,107 @@ void getGPU(char gpu[]){
|
|||
|
||||
|
||||
|
||||
void getKernel(char kernel[]){
|
||||
static char *get_kernel(){
|
||||
kern_name = malloc(BUF_SIZE);
|
||||
char *kernel = malloc(BUF_SIZE);
|
||||
FILE *kInfo = fopen("/proc/version", "r");
|
||||
|
||||
fscanf(kInfo, "%s %s %s ", dump, dump, kernel);
|
||||
fscanf(kInfo, "Linux version %s ", kernel);
|
||||
fclose(kInfo);
|
||||
|
||||
truncate_spaces(kernel);
|
||||
snprintf(kern_name, BUF_SIZE + 5, "Linux %s", kernel);
|
||||
free(kernel);
|
||||
|
||||
return kern_name;
|
||||
}
|
||||
|
||||
void getUptime(int *hr, int *min){
|
||||
int sec;
|
||||
|
||||
static char *get_uptime(void){
|
||||
int sec, hr, min;
|
||||
FILE *FUp = fopen("/proc/uptime", "r");
|
||||
uptime = malloc(BUF_SIZE);
|
||||
|
||||
fscanf(FUp, "%d", &sec);
|
||||
fclose(FUp);
|
||||
|
||||
*hr = (sec/60/60%24);
|
||||
*min = (sec/60%60);
|
||||
hr = (sec/60/60%24);
|
||||
min = (sec/60%60);
|
||||
|
||||
snprintf(uptime, BUF_SIZE, "%dh, %dmin", hr, min);
|
||||
return uptime;
|
||||
}
|
||||
|
||||
void getPackages(int *pkgs, char sys){
|
||||
FILE *packages;
|
||||
static int get_packages(char sys){
|
||||
|
||||
DIR *packageDir;
|
||||
int fileCount = 0;
|
||||
struct dirent * entry;
|
||||
|
||||
switch (sys){
|
||||
case 'a':
|
||||
packages = popen("pacman -Q | wc -l", "r");
|
||||
packageDir = opendir("/var/lib/pacman/local");
|
||||
break;
|
||||
case 'u':
|
||||
packages = popen("dpkg-query -l | wc -l", "r");;
|
||||
|
||||
break;
|
||||
default:
|
||||
printf("\n\n\aUnable to find package list\n\n");
|
||||
}
|
||||
|
||||
fscanf(packages, "%d", pkgs);
|
||||
fclose(packages);
|
||||
|
||||
|
||||
while ((entry = readdir(packageDir)) != NULL) {
|
||||
if (entry->d_type == DT_DIR) {
|
||||
fileCount++;
|
||||
}
|
||||
}
|
||||
closedir(packageDir);
|
||||
|
||||
|
||||
|
||||
return fileCount;
|
||||
|
||||
}
|
||||
|
||||
void getRAM(float *total, float *used, char bar[]){
|
||||
void get_RAM(float *total, float *used, char bar[]){
|
||||
int usedPercent;
|
||||
|
||||
FILE *RAM = popen("free | grep Mem", "r");
|
||||
|
||||
fscanf(RAM, "%s %f %f ", dump, total, used);
|
||||
fscanf(RAM, "Mem: %f %f ", total, used);
|
||||
fclose(RAM);
|
||||
|
||||
usedPercent = (int) (((*used) / (*total)) * 10);
|
||||
usedPercent = round(((*used) / (*total)) * 10);
|
||||
|
||||
for( int i = 1; i <= usedPercent; i++){
|
||||
bar[i] = '*';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
char *LOGO[] = {
|
||||
" ▄ ",
|
||||
" ▟█▙ ",
|
||||
" ▟███▙ ",
|
||||
" ▟█████▙ ",
|
||||
" ▟███████▙ ",
|
||||
" ▂▔▀▜██████▙ ",
|
||||
" ▟██▅▂▝▜█████▙ ",
|
||||
" ▟█████████████▙ ",
|
||||
" ▟███████████████▙ ",
|
||||
" ▟█████████████████▙ ",
|
||||
" ▟███████████████████▙ ",
|
||||
" ▟█████████▛▀▀▜████████▙ ",
|
||||
" ▟████████▛ ▜███████▙ ",
|
||||
" ▟█████████ ████████▙ ",
|
||||
" ▟██████████ █████▆▅▄▃▂ ",
|
||||
" ▟██████████▛ ▜█████████▙ ",
|
||||
" ▟██████▀▀▀ ▀▀██████▙ ",
|
||||
" ▟███▀▘ ▝▀███▙ ",
|
||||
" ▟▛▀ ▀▜▙ "
|
||||
};
|
||||
*/
|
Loading…
Reference in a new issue