dont print line if format evaluates to an empty string

This commit is contained in:
Linus Dierheimer
2021-03-27 15:39:56 +01:00
parent 055804a055
commit beb2e9608c
16 changed files with 120 additions and 147 deletions
+14 -20
View File
@@ -32,22 +32,21 @@ static void printBattery(FFinstance* instance, uint8_t index)
char key[10];
sprintf(key, "Battery %i", index);
if(
manufactor.length == 0 &&
model.length == 0 &&
technology.length == 0 &&
capacity.length == 0 &&
status.length == 0 &&
instance->config.batteryFormat.length == 0
) {
ffPrintError(instance, key, "No file in /sys/class/power_supply/BAT0/ could be read or all battery options are disabled");
return;
}
ffPrintLogoAndKey(instance, key);
if(instance->config.batteryFormat.length == 0)
{
if(
manufactor.length == 0 &&
model.length == 0 &&
technology.length == 0 &&
capacity.length == 0 &&
status.length == 0
) {
ffPrintError(instance, key, "No file in /sys/class/power_supply/BAT0/ could be read or all battery options are disabled");
return;
}
ffPrintLogoAndKey(instance, key);
if(manufactor.length > 0)
printf("%s ", manufactor.chars);
@@ -76,18 +75,13 @@ static void printBattery(FFinstance* instance, uint8_t index)
}
else
{
FF_STRBUF_CREATE(battery);
ffParseFormatString(&battery, &instance->config.batteryFormat, 5,
ffPrintFormatString(instance, key, &instance->config.batteryFormat, 5,
(FFformatarg){FF_FORMAT_ARG_TYPE_STRBUF, &manufactor},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRBUF, &model},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRBUF, &technology},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRBUF, &capacity},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRBUF, &status}
);
ffStrbufPutTo(&battery, stdout);
ffStrbufDestroy(&battery);
}
ffStrbufDestroy(&manufactor);
+1 -8
View File
@@ -69,18 +69,11 @@ void ffPrintDesktopEnvironment(FFinstance* instance)
}
else
{
ffPrintLogoAndKey(instance, "DE");
FF_STRBUF_CREATE(de);
ffParseFormatString(&de, &instance->config.deFormat, 3,
ffPrintFormatString(instance, "DE", &instance->config.deFormat, 3,
(FFformatarg){FF_FORMAT_ARG_TYPE_STRBUF, &sessionDesktop},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRBUF, &sessionVersion},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRBUF, &sessionType}
);
ffStrbufPutTo(&de, stdout);
ffStrbufDestroy(&de);
}
ffStrbufDestroy(&sessionType);
ffStrbufDestroy(&sessionVersion);
+4 -10
View File
@@ -12,30 +12,24 @@ void ffPrintDisk(FFinstance* instance)
return;
}
uint32_t GB = (1024 * 1024) * 1024;
const uint32_t GB = (1024 * 1024) * 1024;
uint32_t total = (fs.f_blocks * fs.f_frsize) / GB;
uint32_t available = (fs.f_bfree * fs.f_frsize) / GB;
uint32_t used = total - available;
uint32_t used = total - available;
uint8_t percentage = (used / (double) total) * 100.0;
ffPrintLogoAndKey(instance, "Disk (/)");
if(instance->config.diskFormat.length == 0)
{
ffPrintLogoAndKey(instance, "Disk (/)");
printf("%uGB / %uGB (%u%%)\n", used, total, percentage);
}
else
{
FF_STRBUF_CREATE(disk);
ffParseFormatString(&disk, &instance->config.diskFormat, 3,
ffPrintFormatString(instance, "Disk (/)", &instance->config.diskFormat, 3,
(FFformatarg){FF_FORMAT_ARG_TYPE_UINT, &used},
(FFformatarg){FF_FORMAT_ARG_TYPE_UINT, &total},
(FFformatarg){FF_FORMAT_ARG_TYPE_UINT8, &percentage}
);
ffStrbufPutTo(&disk, stdout);
ffStrbufDestroy(&disk);
}
}
+2 -8
View File
@@ -41,27 +41,21 @@ void ffPrintFont(FFinstance* instance)
FF_STRBUF_CREATE(gtkPretty);
ffFormatGtkPretty(&gtkPretty, gtk2Pretty, gtk3Pretty, gtk4Pretty);
ffPrintLogoAndKey(instance, "Font");
if(instance->config.fontFormat.length == 0)
{
ffPrintLogoAndKey(instance, "Font");
printf("%s [Plasma], ", plasmaPretty);
ffStrbufPutTo(&gtkPretty, stdout);
}
else
{
FF_STRBUF_CREATE(font);
ffParseFormatString(&font, &instance->config.fontFormat, 5,
ffPrintFormatString(instance, "Font", &instance->config.fontFormat, 5,
(FFformatarg){FF_FORMAT_ARG_TYPE_STRING, plasmaPretty},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRING, gtk2Pretty},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRING, gtk3Pretty},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRING, gtk4Pretty},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRBUF, &gtkPretty}
);
ffStrbufPutTo(&font, stdout);
ffStrbufDestroy(&font);
}
ffStrbufDestroy(&gtkPretty);
+3 -8
View File
@@ -23,10 +23,10 @@ void ffPrintIcons(FFinstance* instance)
FF_STRBUF_CREATE(gtkPretty);
ffFormatGtkPretty(&gtkPretty, gtk2, gtk3, gtk4);
ffPrintLogoAndKey(instance, "Icons");
if(instance->config.iconsFormat.length == 0)
{
ffPrintLogoAndKey(instance, "Icons");
if(plasma[0] == '\0')
printf("Breeze [Plasma], ");
else
@@ -36,18 +36,13 @@ void ffPrintIcons(FFinstance* instance)
}
else
{
FF_STRBUF_CREATE(icons);
ffParseFormatString(&icons, &instance->config.iconsFormat, 5,
ffPrintFormatString(instance, "Icons", &instance->config.iconsFormat, 5,
(FFformatarg){FF_FORMAT_ARG_TYPE_STRING, plasma},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRING, gtk2},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRING, gtk3},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRING, gtk4},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRBUF, &gtkPretty}
);
ffStrbufPutTo(&icons, stdout);
ffStrbufDestroy(&icons);
}
ffStrbufDestroy(&gtkPretty);
+8 -13
View File
@@ -6,18 +6,13 @@ void ffPrintKernel(FFinstance* instance)
{
ffPrintLogoAndKey(instance, "Kernel");
puts(instance->state.utsname.release);
return;
}
FF_STRBUF_CREATE(kernel);
ffParseFormatString(&kernel, &instance->config.kernelFormat, 3,
(FFformatarg){FF_FORMAT_ARG_TYPE_STRING, instance->state.utsname.sysname},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRING, instance->state.utsname.release},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRING, instance->state.utsname.version}
);
ffPrintLogoAndKey(instance, "Kernel");
ffStrbufPutTo(&kernel, stdout);
ffStrbufDestroy(&kernel);
else
{
ffPrintFormatString(instance, "Kernel", &instance->config.kernelFormat, 3,
(FFformatarg){FF_FORMAT_ARG_TYPE_STRING, instance->state.utsname.sysname},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRING, instance->state.utsname.release},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRING, instance->state.utsname.version}
);
}
}
+2 -8
View File
@@ -30,23 +30,17 @@ void ffPrintMemory(FFinstance* instance)
uint32_t total_mem = total / 1024;
uint8_t percentage = (uint8_t) ((used_mem / (double) total_mem) * 100);
ffPrintLogoAndKey(instance, "Memory");
if(instance->config.memoryFormat.length == 0)
{
ffPrintLogoAndKey(instance, "Memory");
printf("%uMiB / %uMiB (%u%%)\n", used_mem, total_mem, percentage);
}
else
{
FF_STRBUF_CREATE(memory);
ffParseFormatString(&memory, &instance->config.memoryFormat, 3,
ffPrintFormatString(instance, "Memory", &instance->config.memoryFormat, 3,
(FFformatarg){FF_FORMAT_ARG_TYPE_UINT, &used_mem},
(FFformatarg){FF_FORMAT_ARG_TYPE_UINT, &total_mem},
(FFformatarg){FF_FORMAT_ARG_TYPE_UINT8, &percentage}
);
ffStrbufPutTo(&memory, stdout);
ffStrbufDestroy(&memory);
}
}
+14 -19
View File
@@ -30,14 +30,14 @@ void ffPrintPackages(FFinstance* instance)
uint32_t all = pacman + flatpak;
if(all == 0)
{
ffPrintError(instance, "Packages", "No packages from known package managers found");
return;
}
if(instance->config.packagesFormat.length == 0)
{
if(all == 0)
{
ffPrintError(instance, "Packages", "No packages from known package managers found");
return;
}
ffPrintLogoAndKey(instance, "Packages");
#define FF_PRINT_PACKAGE(name) \
@@ -54,18 +54,13 @@ void ffPrintPackages(FFinstance* instance)
#undef FF_PRINT_PACKAGE
putchar('\n');
return;
}
FF_STRBUF_CREATE(packages);
ffParseFormatString(&packages, &instance->config.packagesFormat, 3,
(FFformatarg){FF_FORMAT_ARG_TYPE_UINT, &all},
(FFformatarg){FF_FORMAT_ARG_TYPE_UINT, &pacman},
(FFformatarg){FF_FORMAT_ARG_TYPE_UINT, &flatpak}
);
ffPrintLogoAndKey(instance, "Packages");
ffStrbufPutTo(&packages, stdout);
ffStrbufDestroy(&packages);
else
{
ffPrintFormatString(instance, "Packages", &instance->config.packagesFormat, 3,
(FFformatarg){FF_FORMAT_ARG_TYPE_UINT, &all},
(FFformatarg){FF_FORMAT_ARG_TYPE_UINT, &pacman},
(FFformatarg){FF_FORMAT_ARG_TYPE_UINT, &flatpak}
);
}
}
+2 -7
View File
@@ -85,21 +85,16 @@ void ffPrintTerminal(FFinstance* instance)
ffPrintError(instance, "Terminal", instance->state.terminal.error);
return;
}
ffPrintLogoAndKey(instance, "Terminal");
if(instance->config.terminalFormat.length == 0)
{
ffPrintLogoAndKey(instance, "Terminal");
ffStrbufPutTo(&instance->state.terminal.value, stdout);
}
else
{
FF_STRBUF_CREATE(terminal);
ffParseFormatString(&terminal, &instance->config.terminalFormat, 1,
ffPrintFormatString(instance, "Terminal", &instance->config.terminalFormat, 1,
(FFformatarg){FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.terminal.value}
);
ffStrbufPutTo(&terminal, stdout);
}
}
+2 -8
View File
@@ -2,22 +2,16 @@
static void printTerminalFont(FFinstance* instance, char* font)
{
ffPrintLogoAndKey(instance, "Terminal font");
if(instance->config.termFontFormat.length == 0)
{
ffPrintLogoAndKey(instance, "Terminal font");
puts(font);
}
else
{
FF_STRBUF_CREATE(termfont);
ffParseFormatString(&termfont, &instance->config.termFontFormat, 1,
ffPrintFormatString(instance, "Terminal font", &instance->config.termFontFormat, 1,
(FFformatarg){FF_FORMAT_ARG_TYPE_STRING, font}
);
ffStrbufPutTo(&termfont, stdout);
ffStrbufDestroy(&termfont);
}
}
+3 -8
View File
@@ -23,10 +23,10 @@ void ffPrintTheme(FFinstance* instance)
FF_STRBUF_CREATE(gtkPretty);
ffFormatGtkPretty(&gtkPretty, gtk2, gtk3, gtk4);
ffPrintLogoAndKey(instance, "Theme");
if(instance->config.themeFormat.length == 0)
{
ffPrintLogoAndKey(instance, "Theme");
if(plasma[0] != '\0')
printf("%s [Plasma], ", plasma);
@@ -34,17 +34,12 @@ void ffPrintTheme(FFinstance* instance)
}
else
{
FF_STRBUF_CREATE(theme);
ffParseFormatString(&theme, &instance->config.themeFormat, 5,
ffPrintFormatString(instance, "Theme", &instance->config.themeFormat, 5,
(FFformatarg){FF_FORMAT_ARG_TYPE_STRING, plasma},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRING, gtk2},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRING, gtk3},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRING, gtk4},
(FFformatarg){FF_FORMAT_ARG_TYPE_STRBUF, &gtkPretty}
);
ffStrbufPutTo(&theme, stdout);
ffStrbufDestroy(&theme);
}
}
+1 -8
View File
@@ -2,7 +2,6 @@
void ffPrintUptime(FFinstance* instance)
{
uint32_t days = instance->state.sysinfo.uptime / 86400;
uint32_t hours = (instance->state.sysinfo.uptime - (days * 86400)) / 3600;
uint32_t minutes = (instance->state.sysinfo.uptime - (days * 86400) - (hours * 3600)) / 60;
@@ -29,17 +28,11 @@ void ffPrintUptime(FFinstance* instance)
}
else
{
FF_STRBUF_CREATE(uptime);
ffParseFormatString(&uptime, &instance->config.uptimeFormat, 4,
ffPrintFormatString(instance, "Uptime", &instance->config.uptimeFormat, 4,
(FFformatarg){FF_FORMAT_ARG_TYPE_UINT, &days},
(FFformatarg){FF_FORMAT_ARG_TYPE_UINT, &hours},
(FFformatarg){FF_FORMAT_ARG_TYPE_UINT, &minutes},
(FFformatarg){FF_FORMAT_ARG_TYPE_UINT, &seconds}
);
ffPrintLogoAndKey(instance, "Uptime");
ffStrbufPutTo(&uptime, stdout);
ffStrbufDestroy(&uptime);
}
}
+7 -13
View File
@@ -43,28 +43,22 @@ void ffPrintWM(FFinstance* instance)
closedir(proc);
if(!found)
{
ffPrintError(instance, "WM", "No process name matches the name of known display managers");
return;
}
if(instance->config.wmFormat.length == 0)
{
if(!found)
{
ffPrintError(instance, "WM", "No process name matches the name of known display managers");
return;
}
ffPrintLogoAndKey(instance, "WM");
ffStrbufPutTo(&name, stdout);
}
else
{
FF_STRBUF_CREATE(wm);
ffParseFormatString(&wm, &instance->config.wmFormat, 1,
ffPrintFormatString(instance, "WM", &instance->config.wmFormat, 1,
(FFformatarg){FF_FORMAT_ARG_TYPE_STRBUF, &name}
);
ffPrintLogoAndKey(instance, "WM");
ffStrbufPutTo(&wm, stdout);
ffStrbufDestroy(&wm);
}
ffStrbufDestroy(&name);