#include #include #include 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); }