Upload New File

This commit is contained in:
Јован Ђокић-Шумарац 2021-05-03 19:47:45 +00:00
parent 0adf67b5f4
commit 2b451126c9

143
fetchy.c Normal file
View file

@ -0,0 +1,143 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.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 init(char gpu[], char cpu[], char kernel[], char syst[], char *sys, int *hr, int *min, int *pkgs){
getSys(syst, sys);
getGPU(gpu);
getCPU(cpu);
getKernel(kernel);
getUptime(hr, min);
getPackages(pkgs, *sys);
}
int main(int argc, char *argv[]){
int hr, min, pkgs;
char kernel[50], cpu[70], gpu[70], syst[20], sys;
init(gpu, cpu, kernel, syst, &sys, &hr, &min, &pkgs);
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[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[36m\x1b[0m \n");
printf("\n\n");
}
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[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[36m\x1b[0m \n");
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");
}
return 0;
}
void getSys(char syst[], char *sys){
FILE *sysName = fopen("/etc/issue", "r");
fscanf(sysName, "%s ", syst);
fclose(sysName);
if ( !strcmp( syst, "Arch")) *sys = 'a';
if ( !strcmp( syst, "Ubuntu")) *sys = 'u';
}
void getCPU(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[]){
FILE *gpuName = popen("lspci -v | grep VGA -m 1 | awk -F'[' '{ print $2 }' | awk -F']' '{ print $1 }' ", "r");
fscanf(gpuName, "%[^\n]%s", gpu);
fclose(gpuName);
}
void getKernel(char kernel[]){
FILE *kInfo = fopen("/proc/version", "r");
fscanf(kInfo, "%s %s %s ", dump, dump, kernel);
fclose(kInfo);
}
void getUptime(int *hr, int *min){
int sec;
FILE *FUp = fopen("/proc/uptime", "r");
fscanf(FUp, "%d", &sec);
fclose(FUp);
*hr = (sec/60/60%24);
*min = (sec/60%60);
}
void getPackages(int *pkgs, char sys){
FILE *packages;
switch (sys){
case 'a':
packages = popen("pacman -Q | wc -l", "r");
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);
}