Hopefully getting debian-based-distro package count

This commit is contained in:
Јован Ђокић-Шумарац 2021-05-13 16:09:45 +02:00
parent b0a3cd2000
commit 17cd2020c4
2 changed files with 26 additions and 21 deletions

BIN
fetchy Executable file

Binary file not shown.

View file

@ -11,7 +11,7 @@
void truncate_spaces_leading(char *str);
void truncate_spaces_trailing(char *str);
void read_line(char x);
int count_files(char *path);
static int count_files(DIR *package_dir);
static char *get_sys(char *sys, char *os_name);
@ -58,7 +58,7 @@ int main(int argc, char *argv[]){
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));
printf("\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);
}
@ -92,7 +92,7 @@ int main(int argc, char *argv[]){
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 -> *W.I.P.*\n"); //%d\n", get_packages(sys));
printf("\x1b[1m / \\ '``-. ` \x1b[36mPACKAGES\x1b[0m -> %s\n", get_packages(sys)); //%d\n", get_packages(sys));
printf("\x1b[1m .-. , `___: \x1b[36m\x1b[0m \n");
printf("\x1b[1m (:::) : ___ \x1b[36mCPU\x1b[0m -> %s\n", cpu_name);
printf("\x1b[1m `-` ` , : \x1b[36mGPU\x1b[0m -> %s\n", gpu);
@ -164,6 +164,23 @@ void truncate_spaces_trailing(char *str){
}
static int count_files(DIR *package_dir){
struct dirent * entry;
int file_count = 0;
while ((entry = readdir(package_dir)) != NULL) {
if (entry->d_type == DT_DIR) {
file_count++;
}
}
closedir(package_dir);
return file_count;
}
static char *get_sys(char *sys, char *os_name){
os_name = malloc(BUF_SIZE);
char *name = malloc(BUF_SIZE);
@ -255,34 +272,22 @@ static char *get_uptime(char *uptime){
static int get_packages(char sys){
DIR *packageDir;
int fileCount = 0;
struct dirent * entry;
//DIR *package_dir;
int pkg_count = 0;
switch (sys){
case 'a':
packageDir = opendir("/var/lib/pacman/local");
pkg_count = count_files(opendir("/var/lib/pacman/local"));
break;
case 'u':
pkg_count = count_files(opendir("/usr/bin")) + count_files(opendir("/sbin"));
break;
default:
printf("\n\n\aUnable to find package list\n\n");
}
while ((entry = readdir(packageDir)) != NULL) {
if (entry->d_type == DT_DIR) {
fileCount++;
}
}
closedir(packageDir);
return fileCount;
return pkg_count;
}