mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-10-30 00:37:23 +01:00
packages options
This commit is contained in:
+69
-10
@@ -23,17 +23,76 @@ static uint32_t get_num_dirs(const char* dirname) {
|
||||
return num_dirs;
|
||||
}
|
||||
|
||||
|
||||
static void printPacmanPackages()
|
||||
{
|
||||
uint32_t nums = get_num_dirs("/var/lib/pacman/local");
|
||||
if(nums > 0)
|
||||
printf("%i (pacman) ", nums);
|
||||
}
|
||||
|
||||
void ffPrintPackages(FFinstance* instance)
|
||||
{
|
||||
uint32_t pacman = instance->config.packagesPacman ? get_num_dirs("/var/lib/pacman/local") : 0;
|
||||
uint32_t flatpak = instance->config.packagesFlatpak ? get_num_dirs("/var/lib/flatpak/app") : 0;
|
||||
|
||||
uint32_t all = pacman + flatpak;
|
||||
|
||||
if(all == 0)
|
||||
{
|
||||
ffPrintError(instance, "Packages", "No packages from known package managers found");
|
||||
return;
|
||||
}
|
||||
|
||||
ffPrintLogoAndKey(instance, "Packages");
|
||||
printPacmanPackages();
|
||||
putchar('\n');
|
||||
|
||||
if(instance->config.packagesCombined)
|
||||
{
|
||||
if(instance->config.packagesFormat[0] != '\0')
|
||||
{
|
||||
printf(instance->config.packagesFormat, all);
|
||||
putchar('\n');
|
||||
return;
|
||||
}
|
||||
|
||||
printf("%u", all);
|
||||
|
||||
if(instance->config.packagesCombinedNames)
|
||||
{
|
||||
printf(" (");
|
||||
|
||||
#define FF_PRINT_PACKAGE(name) \
|
||||
if(name > 0) \
|
||||
{ \
|
||||
printf(#name); \
|
||||
if((all = all - name) > 0) \
|
||||
printf(", "); \
|
||||
} \
|
||||
|
||||
FF_PRINT_PACKAGE(pacman)
|
||||
FF_PRINT_PACKAGE(flatpak)
|
||||
|
||||
#undef FF_PRINT_PACKAGE
|
||||
|
||||
printf(")");
|
||||
}
|
||||
|
||||
putchar('\n');
|
||||
}
|
||||
else
|
||||
{
|
||||
if(instance->config.packagesFormat[0] != '\0')
|
||||
{
|
||||
printf(instance->config.packagesFormat, pacman, flatpak);
|
||||
putchar('\n');
|
||||
return;
|
||||
}
|
||||
|
||||
#define FF_PRINT_PACKAGE(name) \
|
||||
if(name > 0) \
|
||||
{ \
|
||||
printf("%u ("#name")", name); \
|
||||
if((all = all - name) > 0) \
|
||||
printf(", "); \
|
||||
};
|
||||
|
||||
FF_PRINT_PACKAGE(pacman)
|
||||
FF_PRINT_PACKAGE(flatpak)
|
||||
|
||||
#undef FF_PRINT_PACKAGE
|
||||
|
||||
putchar('\n');
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
static void getTerminalName(FFinstance* instance, const char* pid, char* terminal, char* error)
|
||||
{
|
||||
char file[256];
|
||||
char file[234];
|
||||
sprintf(file, "/proc/%s/stat", pid);
|
||||
|
||||
FILE* stat = fopen(file, "r");
|
||||
|
||||
@@ -17,8 +17,8 @@ static void printKonsole(FFinstance* instance)
|
||||
ffParsePropFileHome(instance, profilePath, "Font=%[^\n]", font);
|
||||
if(font[0] == '\0')
|
||||
{
|
||||
char error[256];
|
||||
sprintf(error, "Terminal Font", "Couldn't find \"Font=%[^\n]\" in \"%s\"", profilePath);
|
||||
char error[289];
|
||||
sprintf(error, "Couldn't find \"Font=%%[^\\n]\" in \"%s\"", profilePath);
|
||||
ffPrintError(instance, "Terminal Font", error);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user