Global: adds option key-language

Fixes #2503
This commit is contained in:
Carter Li
2026-08-14 23:33:54 +08:00
parent 3908c39ce2
commit f95167e907
157 changed files with 638 additions and 611 deletions
+24
View File
@@ -585,6 +585,30 @@
"default": "string"
}
},
{
"long": "key-language",
"desc": "Specify the language used for module keys",
"remark": "Leave empty for auto-detection based on the system locale",
"arg": {
"type": "enum",
"default": "en",
"optional": true,
"enum": {
"en": "English",
"de": "German",
"es": "Spanish",
"fr": "French",
"it": "Italian",
"ja": "Japanese",
"ko": "Korean",
"pl": "Polish",
"pt_BR": "Brazilian Portuguese",
"ru": "Russian",
"zh_CN": "Simplified Chinese",
"zh_TW": "Traditional Chinese"
}
}
},
{
"long": "bright-color",
"desc": "Specify whether keys, title, and ASCII logo should be printed in bright color",
+70
View File
@@ -1057,6 +1057,76 @@
"description": "Left padding for keys",
"minimum": 0,
"default": 0
},
"language": {
"description": "Language used for module keys. `null` for auto detection based on system locale",
"oneOf": [
{
"type": "null",
"description": "Auto detection based on system locale"
},
{
"type": "string",
"const": "en",
"description": "English"
},
{
"type": "string",
"const": "de",
"description": "German"
},
{
"type": "string",
"const": "es",
"description": "Spanish"
},
{
"type": "string",
"const": "fr",
"description": "French"
},
{
"type": "string",
"const": "it",
"description": "Italian"
},
{
"type": "string",
"const": "ja",
"description": "Japanese"
},
{
"type": "string",
"const": "ko",
"description": "Korean"
},
{
"type": "string",
"const": "pl",
"description": "Polish"
},
{
"type": "string",
"const": "pt_BR",
"description": "Brazilian Portuguese"
},
{
"type": "string",
"const": "ru",
"description": "Russian"
},
{
"type": "string",
"const": "zh_CN",
"description": "Simplified Chinese"
},
{
"type": "string",
"const": "zh_TW",
"description": "Traditional Chinese"
}
],
"default": "en"
}
}
},
+6 -6
View File
@@ -67,13 +67,13 @@ void ffPrepareCommandOption(FFdata* data) {
char* moduleType = nullptr;
size_t moduleLen = 0;
while (ffStrbufGetdelim(&moduleType, &moduleLen, ':', &data->structure)) {
#define FF_IF_MODULE_MATCH(moduleNameConstant) if (moduleLen == strlen(moduleNameConstant) && ffStrEqualsIgnCase(moduleType, moduleNameConstant) && !ffStrbufSeparatedContainIgnCaseS(&data->structureDisabled, moduleNameConstant, ':'))
#define FF_IF_MODULE_MATCH(moduleNameConstant) if (ffStrEqualsIgnCase(moduleType, moduleNameConstant) && !ffStrbufSeparatedContainIgnCaseS(&data->structureDisabled, moduleNameConstant, ':'))
switch (moduleType[0]) {
#if !FF_MODULE_DISABLE_CPUUSAGE
case 'C':
case 'c':
FF_IF_MODULE_MATCH(FF_CPUUSAGE_MODULE_NAME)
FF_IF_MODULE_MATCH(ffCPUUsageModuleInfo.name)
ffPrepareCPUUsage();
break;
#endif
@@ -81,7 +81,7 @@ void ffPrepareCommandOption(FFdata* data) {
#if !FF_MODULE_DISABLE_DISKIO
case 'D':
case 'd':
FF_IF_MODULE_MATCH(FF_DISKIO_MODULE_NAME) {
FF_IF_MODULE_MATCH(ffDiskIOModuleInfo.name) {
[[gnu::cleanup(ffDestroyDiskIOOptions)]] FFDiskIOOptions options;
ffInitDiskIOOptions(&options);
ffPrepareDiskIO(&options);
@@ -92,7 +92,7 @@ void ffPrepareCommandOption(FFdata* data) {
#if !FF_MODULE_DISABLE_NETIO
case 'N':
case 'n':
FF_IF_MODULE_MATCH(FF_NETIO_MODULE_NAME) {
FF_IF_MODULE_MATCH(ffNetIOModuleInfo.name) {
[[gnu::cleanup(ffDestroyNetIOOptions)]] FFNetIOOptions options;
ffInitNetIOOptions(&options);
ffPrepareNetIO(&options);
@@ -103,7 +103,7 @@ void ffPrepareCommandOption(FFdata* data) {
#if !FF_MODULE_DISABLE_PUBLICIP
case 'P':
case 'p':
FF_IF_MODULE_MATCH(FF_PUBLICIP_MODULE_NAME) {
FF_IF_MODULE_MATCH(ffPublicIPModuleInfo.name) {
[[gnu::cleanup(ffDestroyPublicIpOptions)]] FFPublicIPOptions options;
ffInitPublicIpOptions(&options);
ffPreparePublicIp(&options);
@@ -114,7 +114,7 @@ void ffPrepareCommandOption(FFdata* data) {
#if !FF_MODULE_DISABLE_WEATHER
case 'W':
case 'w':
FF_IF_MODULE_MATCH(FF_WEATHER_MODULE_NAME) {
FF_IF_MODULE_MATCH(ffWeatherModuleInfo.name) {
[[gnu::cleanup(ffDestroyWeatherOptions)]] FFWeatherOptions options;
ffInitWeatherOptions(&options);
ffPrepareWeather(&options);
+6 -6
View File
@@ -136,9 +136,9 @@ static void prepareModuleJsonObject(const char* type, yyjson_val* module) {
#if !FF_MODULE_DISABLE_CPUUSAGE
case 'c':
case 'C': {
if (ffStrEqualsIgnCase(type, FF_CPUUSAGE_MODULE_NAME)) {
if (ffStrEqualsIgnCase(type, ffCPUUsageModuleInfo.name)) {
ffPrepareCPUUsage();
} else if (ffStrEqualsIgnCase(type, FF_COMMAND_MODULE_NAME)) {
} else if (ffStrEqualsIgnCase(type, ffCommandModuleInfo.name)) {
[[gnu::cleanup(ffDestroyCommandOptions)]] FFCommandOptions options;
ffInitCommandOptions(&options);
if (module) {
@@ -153,7 +153,7 @@ static void prepareModuleJsonObject(const char* type, yyjson_val* module) {
#if !FF_MODULE_DISABLE_DISKIO
case 'd':
case 'D': {
if (ffStrEqualsIgnCase(type, FF_DISKIO_MODULE_NAME)) {
if (ffStrEqualsIgnCase(type, ffDiskIOModuleInfo.name)) {
[[gnu::cleanup(ffDestroyDiskIOOptions)]] FFDiskIOOptions options;
ffInitDiskIOOptions(&options);
if (module) {
@@ -168,7 +168,7 @@ static void prepareModuleJsonObject(const char* type, yyjson_val* module) {
#if !FF_MODULE_DISABLE_NETIO
case 'n':
case 'N': {
if (ffStrEqualsIgnCase(type, FF_NETIO_MODULE_NAME)) {
if (ffStrEqualsIgnCase(type, ffNetIOModuleInfo.name)) {
[[gnu::cleanup(ffDestroyNetIOOptions)]] FFNetIOOptions options;
ffInitNetIOOptions(&options);
if (module) {
@@ -183,7 +183,7 @@ static void prepareModuleJsonObject(const char* type, yyjson_val* module) {
#if !FF_MODULE_DISABLE_PUBLICIP
case 'p':
case 'P': {
if (ffStrEqualsIgnCase(type, FF_PUBLICIP_MODULE_NAME)) {
if (ffStrEqualsIgnCase(type, ffPublicIPModuleInfo.name)) {
[[gnu::cleanup(ffDestroyPublicIpOptions)]] FFPublicIPOptions options;
ffInitPublicIpOptions(&options);
if (module) {
@@ -198,7 +198,7 @@ static void prepareModuleJsonObject(const char* type, yyjson_val* module) {
#if !FF_MODULE_DISABLE_WEATHER
case 'w':
case 'W': {
if (ffStrEqualsIgnCase(type, FF_WEATHER_MODULE_NAME)) {
if (ffStrEqualsIgnCase(type, ffWeatherModuleInfo.name)) {
[[gnu::cleanup(ffDestroyWeatherOptions)]] FFWeatherOptions options;
ffInitWeatherOptions(&options);
if (module) {
+2
View File
@@ -111,3 +111,5 @@ static inline void ffOptionDestroyModuleArg(FFModuleArgs* args) {
}
enum { FF_OPTION_MAX_SIZE = 1 << 8 }; // Maximum size of a single option value, used for static allocation
#define FF_MODULE_GET_DISPLAY_NAME(moduleName) (*(const char**) ((uint8_t*) &ff ## moduleName ## ModuleInfo.displayName + instance.config.display.keyLanguage))
+6 -6
View File
@@ -11,9 +11,9 @@ static void printBattery(FFBatteryOptions* options, FFBatteryResult* result, uin
FF_STRBUF_AUTO_DESTROY key = ffStrbufCreate();
if (options->moduleArgs.key.length == 0) {
if (result->modelName.length > 0) {
ffStrbufSetF(&key, "%s (%s)", FF_BATTERY_MODULE_NAME, result->modelName.chars);
ffStrbufSetF(&key, "%s (%s)", FF_MODULE_GET_DISPLAY_NAME(Battery), result->modelName.chars);
} else {
ffStrbufSetS(&key, FF_BATTERY_MODULE_NAME);
ffStrbufSetS(&key, FF_MODULE_GET_DISPLAY_NAME(Battery));
}
} else {
ffStrbufClear(&key);
@@ -170,11 +170,11 @@ bool ffPrintBattery(FFBatteryOptions* options) {
const char* error = ffDetectBattery(options, &results);
if (error) {
ffPrintError(FF_BATTERY_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Battery), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
if (results.length == 0) {
ffPrintError(FF_BATTERY_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", "No batteries found");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Battery), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", "No batteries found");
return false;
}
@@ -209,7 +209,7 @@ void ffParseBatteryJsonObject(FFBatteryOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_BATTERY_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Battery), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -297,7 +297,7 @@ void ffDestroyBatteryOptions(FFBatteryOptions* options) {
}
FFModuleBaseInfo ffBatteryModuleInfo = {
.name = FF_BATTERY_MODULE_NAME,
.name = "Battery",
.description = "Print battery information",
.displayName = {
.en = "Battery",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_BATTERY_MODULE_NAME "Battery"
bool ffPrintBattery(FFBatteryOptions* options);
void ffInitBatteryOptions(FFBatteryOptions* options);
void ffDestroyBatteryOptions(FFBatteryOptions* options);
+5 -5
View File
@@ -18,12 +18,12 @@ bool ffPrintBios(FFBiosOptions* options) {
FF_STRBUF_AUTO_DESTROY key = ffStrbufCreate();
if (error) {
ffPrintError(FF_BIOS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Bios), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
goto exit;
}
if (bios.version.length == 0) {
ffPrintError(FF_BIOS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "bios_version is not set.");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Bios), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "bios_version is not set.");
goto exit;
}
@@ -34,7 +34,7 @@ bool ffPrintBios(FFBiosOptions* options) {
ffStrbufSetStatic(&bios.type, "Legacy");
}
ffStrbufSetF(&key, FF_BIOS_MODULE_NAME " (%s)", bios.type.chars);
ffStrbufSetF(&key, "%s (%s)", FF_MODULE_GET_DISPLAY_NAME(Bios), bios.type.chars);
} else {
ffStrbufClear(&key);
FF_PARSE_FORMAT_STRING_CHECKED(&key, &options->moduleArgs.key, ((FFformatarg[]) {
@@ -80,7 +80,7 @@ void ffParseBiosJsonObject(FFBiosOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_BIOS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Bios), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -130,7 +130,7 @@ void ffDestroyBiosOptions(FFBiosOptions* options) {
}
FFModuleBaseInfo ffBiosModuleInfo = {
.name = FF_BIOS_MODULE_NAME,
.name = "BIOS",
.description = "Print first-stage bootloader information (name, version, release date, etc.)",
.displayName = {
.en = "BIOS",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_BIOS_MODULE_NAME "BIOS"
bool ffPrintBios(FFBiosOptions* options);
void ffInitBiosOptions(FFBiosOptions* options);
void ffDestroyBiosOptions(FFBiosOptions* options);
+6 -6
View File
@@ -8,7 +8,7 @@
static void printDevice(FFBluetoothOptions* options, const FFBluetoothResult* device, uint8_t index) {
FFPercentageTypeFlags percentType = options->percent.type == 0 ? instance.config.display.percentType : options->percent.type;
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_BLUETOOTH_MODULE_NAME, index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Bluetooth), index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
FF_STRBUF_AUTO_DESTROY buffer = ffStrbufCreate();
bool showBatteryLevel = device->battery > 0 && device->battery <= 100;
@@ -44,7 +44,7 @@ static void printDevice(FFBluetoothOptions* options, const FFBluetoothResult* de
ffPercentAppendBar(&percentageBar, device->battery, options->percent, &options->moduleArgs);
}
FF_PRINT_FORMAT_CHECKED(FF_BLUETOOTH_MODULE_NAME, index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Bluetooth), index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(device->name, "name"),
FF_ARG(device->address, "address"),
FF_ARG(device->type, "type"),
@@ -60,12 +60,12 @@ bool ffPrintBluetooth(FFBluetoothOptions* options) {
const char* error = ffDetectBluetooth(options, &devices);
if (error) {
ffPrintError(FF_BLUETOOTH_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Bluetooth), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
if (devices.length == 0) {
ffPrintError(FF_BLUETOOTH_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No bluetooth devices found");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Bluetooth), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No bluetooth devices found");
return false;
}
@@ -100,7 +100,7 @@ void ffParseBluetoothJsonObject(FFBluetoothOptions* options, yyjson_val* module)
continue;
}
ffPrintError(FF_BLUETOOTH_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Bluetooth), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -151,7 +151,7 @@ void ffDestroyBluetoothOptions(FFBluetoothOptions* options) {
}
FFModuleBaseInfo ffBluetoothModuleInfo = {
.name = FF_BLUETOOTH_MODULE_NAME,
.name = "Bluetooth",
.description = "List connected Bluetooth devices",
.displayName = {
.en = "Bluetooth",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_BLUETOOTH_MODULE_NAME "Bluetooth"
bool ffPrintBluetooth(FFBluetoothOptions* options);
void ffInitBluetoothOptions(FFBluetoothOptions* options);
void ffDestroyBluetoothOptions(FFBluetoothOptions* options);
+6 -8
View File
@@ -5,8 +5,6 @@
#include "detection/bluetoothradio/bluetoothradio.h"
#include "modules/bluetoothradio/bluetoothradio.h"
#define FF_BLUETOOTHRADIO_DISPLAY_NAME "Bluetooth Radio"
static void destroyBluetoothRadios(FFlist* radios) {
FF_LIST_FOR_EACH (FFBluetoothRadioResult, radio, *radios) {
ffStrbufDestroy(&radio->name);
@@ -18,7 +16,7 @@ static void destroyBluetoothRadios(FFlist* radios) {
static void printDevice(FFBluetoothRadioOptions* options, const FFBluetoothRadioResult* radio, uint8_t index) {
FF_STRBUF_AUTO_DESTROY key = ffStrbufCreate();
if (options->moduleArgs.key.length == 0) {
ffStrbufAppendF(&key, "%s (%s)", FF_BLUETOOTHRADIO_DISPLAY_NAME, radio->name.chars);
ffStrbufAppendF(&key, "%s (%s)", FF_MODULE_GET_DISPLAY_NAME(BluetoothRadio), radio->name.chars);
} else {
FF_PARSE_FORMAT_STRING_CHECKED(&key, &options->moduleArgs.key, ((FFformatarg[]) {
FF_ARG(index, "index"),
@@ -101,7 +99,7 @@ bool ffPrintBluetoothRadio(FFBluetoothRadioOptions* options) {
const char* error = ffDetectBluetoothRadio(&radios);
if (error) {
ffPrintError(FF_BLUETOOTHRADIO_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(BluetoothRadio), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
@@ -117,9 +115,9 @@ bool ffPrintBluetoothRadio(FFBluetoothRadioOptions* options) {
if (index == 0) {
if (radios.length > 0) {
ffPrintError(FF_BLUETOOTHRADIO_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Bluetooth radios found but none enabled");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(BluetoothRadio), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Bluetooth radios found but none enabled");
} else {
ffPrintError(FF_BLUETOOTHRADIO_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No devices detected");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(BluetoothRadio), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No devices detected");
}
destroyBluetoothRadios(&radios);
return false;
@@ -137,7 +135,7 @@ void ffParseBluetoothRadioJsonObject(FFBluetoothRadioOptions* options, yyjson_va
continue;
}
ffPrintError(FF_BLUETOOTHRADIO_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(BluetoothRadio), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -190,7 +188,7 @@ void ffDestroyBluetoothRadioOptions(FFBluetoothRadioOptions* options) {
}
FFModuleBaseInfo ffBluetoothRadioModuleInfo = {
.name = FF_BLUETOOTHRADIO_MODULE_NAME,
.name = "BluetoothRadio",
.description = "List Bluetooth radios (supported versions, vendors, etc.)",
.displayName = {
.en = "Bluetooth Radio",
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_BLUETOOTHRADIO_MODULE_NAME "BluetoothRadio"
bool ffPrintBluetoothRadio(FFBluetoothRadioOptions* options);
void ffInitBluetoothRadioOptions(FFBluetoothRadioOptions* options);
void ffDestroyBluetoothRadioOptions(FFBluetoothRadioOptions* options);
+6 -6
View File
@@ -14,24 +14,24 @@ bool ffPrintBoard(FFBoardOptions* options) {
const char* error = ffDetectBoard(&result);
if (error) {
ffPrintError(FF_BOARD_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Board), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
goto exit;
}
if (result.name.length == 0) {
ffPrintError(FF_BOARD_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "board_name is not set.");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Board), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "board_name is not set.");
goto exit;
}
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_BOARD_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Board), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffStrbufWriteTo(&result.name, stdout);
if (result.version.length) {
printf(" (%s)", result.version.chars);
}
putchar('\n');
} else {
FF_PRINT_FORMAT_CHECKED(FF_BOARD_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Board), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(result.name, "name"),
FF_ARG(result.vendor, "vendor"),
FF_ARG(result.version, "version"),
@@ -56,7 +56,7 @@ void ffParseBoardJsonObject(FFBoardOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_BOARD_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Board), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -108,7 +108,7 @@ void ffDestroyBoardOptions(FFBoardOptions* options) {
}
FFModuleBaseInfo ffBoardModuleInfo = {
.name = FF_BOARD_MODULE_NAME,
.name = "Board",
.description = "Print motherboard name and other information",
.displayName = {
.en = "Board",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_BOARD_MODULE_NAME "Board"
bool ffPrintBoard(FFBoardOptions* options);
void ffInitBoardOptions(FFBoardOptions* options);
void ffDestroyBoardOptions(FFBoardOptions* options);
+5 -5
View File
@@ -14,7 +14,7 @@ bool ffPrintBootmgr(FFBootmgrOptions* options) {
const char* error = ffDetectBootmgr(&bootmgr);
if (error) {
ffPrintError(FF_BOOTMGR_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Bootmgr), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
goto exit;
} else {
FF_STRBUF_AUTO_DESTROY firmwareName = ffStrbufCreateCopy(&bootmgr.firmware);
@@ -25,7 +25,7 @@ bool ffPrintBootmgr(FFBootmgrOptions* options) {
#endif
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_BOOTMGR_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Bootmgr), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffStrbufWriteTo(&bootmgr.name, stdout);
if (firmwareName.length > 0) {
printf(" - %s\n", firmwareName.chars);
@@ -33,7 +33,7 @@ bool ffPrintBootmgr(FFBootmgrOptions* options) {
putchar('\n');
}
} else {
FF_PRINT_FORMAT_CHECKED(FF_BOOTMGR_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Bootmgr), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(bootmgr.name, "name"),
FF_ARG(bootmgr.firmware, "firmware-path"),
FF_ARG(firmwareName, "firmware-name"),
@@ -59,7 +59,7 @@ void ffParseBootmgrJsonObject(FFBootmgrOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_BOOTMGR_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Bootmgr), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -103,7 +103,7 @@ void ffDestroyBootmgrOptions(FFBootmgrOptions* options) {
}
FFModuleBaseInfo ffBootmgrModuleInfo = {
.name = FF_BOOTMGR_MODULE_NAME,
.name = "Bootmgr",
.description = "Print second-stage bootloader information (name, firmware, etc.)",
.displayName = {
.en = "Boot Manager",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_BOOTMGR_MODULE_NAME "Bootmgr"
bool ffPrintBootmgr(FFBootmgrOptions* options);
void ffInitBootmgrOptions(FFBootmgrOptions* options);
void ffDestroyBootmgrOptions(FFBootmgrOptions* options);
+2 -2
View File
@@ -16,7 +16,7 @@ void ffParseBreakJsonObject([[maybe_unused]] FFBreakOptions* options, [[maybe_un
continue;
}
ffPrintError(FF_BREAK_MODULE_NAME, 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Break), 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -27,7 +27,7 @@ void ffDestroyBreakOptions([[maybe_unused]] FFBreakOptions* options) {
}
FFModuleBaseInfo ffBreakModuleInfo = {
.name = FF_BREAK_MODULE_NAME,
.name = "Break",
.description = "Print an empty line",
.displayName = {
.en = "Break",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_BREAK_MODULE_NAME "Break"
bool ffPrintBreak(FFBreakOptions* options);
void ffInitBreakOptions(FFBreakOptions* options);
void ffDestroyBreakOptions(FFBreakOptions* options);
+6 -6
View File
@@ -11,12 +11,12 @@ bool ffPrintBrightness(FFBrightnessOptions* options) {
const char* error = ffDetectBrightness(options, &result);
if (error) {
ffPrintError(FF_BRIGHTNESS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Brightness), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
if (result.length == 0) {
ffPrintError(FF_BRIGHTNESS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No result is detected.");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Brightness), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No result is detected.");
return false;
}
@@ -34,7 +34,7 @@ bool ffPrintBrightness(FFBrightnessOptions* options) {
ffPercentAppendNum(&str, percent, options->percent, false, &options->moduleArgs);
}
ffPrintLogoAndKey(FF_BRIGHTNESS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Brightness), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffStrbufPutTo(&str, stdout);
return true;
}
@@ -44,7 +44,7 @@ bool ffPrintBrightness(FFBrightnessOptions* options) {
uint32_t index = 0;
FF_LIST_FOR_EACH (FFBrightnessResult, item, result) {
if (options->moduleArgs.key.length == 0) {
ffStrbufAppendF(&key, "%s (%s)", FF_BRIGHTNESS_MODULE_NAME, item->name.chars);
ffStrbufAppendF(&key, "%s (%s)", FF_MODULE_GET_DISPLAY_NAME(Brightness), item->name.chars);
} else {
uint32_t moduleIndex = result.length == 1 ? 0 : index + 1;
FF_PARSE_FORMAT_STRING_CHECKED(&key, &options->moduleArgs.key, ((FFformatarg[]) {
@@ -130,7 +130,7 @@ void ffParseBrightnessJsonObject(FFBrightnessOptions* options, yyjson_val* modul
continue;
}
ffPrintError(FF_BRIGHTNESS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Brightness), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -190,7 +190,7 @@ void ffDestroyBrightnessOptions(FFBrightnessOptions* options) {
}
FFModuleBaseInfo ffBrightnessModuleInfo = {
.name = FF_BRIGHTNESS_MODULE_NAME,
.name = "Brightness",
.description = "Print the current brightness level of your monitors",
.displayName = {
.en = "Brightness",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_BRIGHTNESS_MODULE_NAME "Brightness"
bool ffPrintBrightness(FFBrightnessOptions* options);
void ffInitBrightnessOptions(FFBrightnessOptions* options);
void ffDestroyBrightnessOptions(FFBrightnessOptions* options);
+6 -6
View File
@@ -10,9 +10,9 @@ static void printBtrfs(FFBtrfsOptions* options, FFBtrfsResult* result, uint8_t i
FF_STRBUF_AUTO_DESTROY buffer = ffStrbufCreate();
if (options->moduleArgs.key.length == 0) {
if (result->name.length > 0) {
ffStrbufSetF(&buffer, "%s (%s)", FF_BTRFS_MODULE_NAME, result->name.chars);
ffStrbufSetF(&buffer, "%s (%s)", FF_MODULE_GET_DISPLAY_NAME(Btrfs), result->name.chars);
} else {
ffStrbufSetS(&buffer, FF_BTRFS_MODULE_NAME);
ffStrbufSetS(&buffer, FF_MODULE_GET_DISPLAY_NAME(Btrfs));
}
} else {
ffStrbufClear(&buffer);
@@ -100,11 +100,11 @@ bool ffPrintBtrfs(FFBtrfsOptions* options) {
const char* error = ffDetectBtrfs(&results);
if (error) {
ffPrintError(FF_BTRFS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Btrfs), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
if (results.length == 0) {
ffPrintError(FF_BTRFS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", "No btrfs drive found");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Btrfs), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", "No btrfs drive found");
return false;
}
@@ -136,7 +136,7 @@ void ffParseBtrfsJsonObject(FFBtrfsOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_BTRFS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Btrfs), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -198,7 +198,7 @@ void ffDestroyBtrfsOptions(FFBtrfsOptions* options) {
}
FFModuleBaseInfo ffBtrfsModuleInfo = {
.name = FF_BTRFS_MODULE_NAME,
.name = "Btrfs",
.description = "Print Linux BTRFS volumes",
.displayName = {
.en = "BTRFS",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_BTRFS_MODULE_NAME "Btrfs"
bool ffPrintBtrfs(FFBtrfsOptions* options);
void ffInitBtrfsOptions(FFBtrfsOptions* options);
void ffDestroyBtrfsOptions(FFBtrfsOptions* options);
+6 -6
View File
@@ -5,7 +5,7 @@
static void printDevice(FFCameraOptions* options, const FFCameraResult* device, uint8_t index) {
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_CAMERA_MODULE_NAME, index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Camera), index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffStrbufWriteTo(&device->name, stdout);
if (device->colorspace.length > 0) {
@@ -19,7 +19,7 @@ static void printDevice(FFCameraOptions* options, const FFCameraResult* device,
putchar('\n');
}
} else {
FF_PRINT_FORMAT_CHECKED(FF_CAMERA_MODULE_NAME, index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, (((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Camera), index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, (((FFformatarg[]) {
FF_ARG(device->name, "name"),
FF_ARG(device->vendor, "vendor"),
FF_ARG(device->colorspace, "colorspace"),
@@ -35,12 +35,12 @@ bool ffPrintCamera(FFCameraOptions* options) {
const char* error = ffDetectCamera(&result);
if (error) {
ffPrintError(FF_CAMERA_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Camera), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
if (result.length == 0) {
ffPrintError(FF_CAMERA_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No camera found");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Camera), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No camera found");
return false;
}
@@ -67,7 +67,7 @@ void ffParseCameraJsonObject(FFCameraOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_CAMERA_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Camera), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -115,7 +115,7 @@ void ffDestroyCameraOptions(FFCameraOptions* options) {
}
FFModuleBaseInfo ffCameraModuleInfo = {
.name = FF_CAMERA_MODULE_NAME,
.name = "Camera",
.description = "Print available cameras",
.displayName = {
.en = "Camera",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_CAMERA_MODULE_NAME "Camera"
bool ffPrintCamera(FFCameraOptions* options);
void ffInitCameraOptions(FFCameraOptions* options);
void ffDestroyCameraOptions(FFCameraOptions* options);
+6 -6
View File
@@ -16,24 +16,24 @@ bool ffPrintChassis(FFChassisOptions* options) {
const char* error = ffDetectChassis(&result);
if (error) {
ffPrintError(FF_CHASSIS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Chassis), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
goto exit;
}
if (result.type.length == 0) {
ffPrintError(FF_CHASSIS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "chassis_type is not set by O.E.M.");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Chassis), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "chassis_type is not set by O.E.M.");
goto exit;
}
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_CHASSIS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Chassis), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffStrbufWriteTo(&result.type, stdout);
if (result.version.length) {
printf(" (%s)", result.version.chars);
}
putchar('\n');
} else {
FF_PRINT_FORMAT_CHECKED(FF_CHASSIS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Chassis), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(result.type, "type"),
FF_ARG(result.vendor, "vendor"),
FF_ARG(result.version, "version"),
@@ -58,7 +58,7 @@ void ffParseChassisJsonObject(FFChassisOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_CHASSIS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Chassis), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -110,7 +110,7 @@ void ffDestroyChassisOptions(FFChassisOptions* options) {
}
FFModuleBaseInfo ffChassisModuleInfo = {
.name = FF_CHASSIS_MODULE_NAME,
.name = "Chassis",
.description = "Print chassis type information (desktop, laptop, etc.)",
.displayName = {
.en = "Chassis",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_CHASSIS_MODULE_NAME "Chassis"
bool ffPrintChassis(FFChassisOptions* options);
void ffInitChassisOptions(FFChassisOptions* options);
void ffDestroyChassisOptions(FFChassisOptions* options);
+7 -7
View File
@@ -51,9 +51,9 @@ static void printCodecLine(const FFCodecOptions* options, uint8_t index, FFstrbu
FF_STRBUF_AUTO_DESTROY key = ffStrbufCreate();
if (options->moduleArgs.key.length == 0) {
if (gpu->length > 0) {
ffStrbufSetF(&key, "%s (%s - %s)", FF_CODEC_MODULE_NAME, direction, gpu->chars);
ffStrbufSetF(&key, "%s (%s - %s)", FF_MODULE_GET_DISPLAY_NAME(Codec), direction, gpu->chars);
} else {
ffStrbufSetF(&key, "%s (%s)", FF_CODEC_MODULE_NAME, direction);
ffStrbufSetF(&key, "%s (%s)", FF_MODULE_GET_DISPLAY_NAME(Codec), direction);
}
} else {
FF_PARSE_FORMAT_STRING_CHECKED(&key, &options->moduleArgs.key, ((FFformatarg[]){
@@ -100,12 +100,12 @@ bool ffPrintCodec(FFCodecOptions* options) {
const char* error = ffDetectCodec(options, &result);
if (error) {
ffPrintError(FF_CODEC_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Codec), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
if (result.length == 0) {
ffPrintError(FF_CODEC_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No hardware video acceleration found");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Codec), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No hardware video acceleration found");
return false;
}
@@ -174,14 +174,14 @@ void ffParseCodecJsonObject(FFCodecOptions* options, yyjson_val* module) {
{},
});
if (error) {
ffPrintError(FF_CODEC_MODULE_NAME, 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Invalid %s value: %s", unsafe_yyjson_get_str(key), error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Codec), 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Invalid %s value: %s", unsafe_yyjson_get_str(key), error);
} else {
options->showType = (FFCodecShowType) value;
}
continue;
}
ffPrintError(FF_CODEC_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Codec), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -251,7 +251,7 @@ void ffDestroyCodecOptions(FFCodecOptions* options) {
}
FFModuleBaseInfo ffCodecModuleInfo = {
.name = FF_CODEC_MODULE_NAME,
.name = "Codec",
.description = "Print hardware video acceleration codec types (decode / encode)",
.displayName = {
.en = "Codec",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_CODEC_MODULE_NAME "Codec"
bool ffPrintCodec(FFCodecOptions* options);
void ffInitCodecOptions(FFCodecOptions* options);
void ffDestroyCodecOptions(FFCodecOptions* options);
+11 -11
View File
@@ -37,7 +37,7 @@ bool ffPrintColors(FFColorsOptions* options) {
}
}
if (result.length > 0) {
ffPrintLogoAndKey(FF_COLORS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Colors), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
flag = true;
if (options->paddingLeft > 0) {
@@ -122,7 +122,7 @@ bool ffPrintColors(FFColorsOptions* options) {
if (flag) {
ffLogoPrintLine();
} else {
ffPrintLogoAndKey(FF_COLORS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Colors), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
flag = true;
}
@@ -136,7 +136,7 @@ bool ffPrintColors(FFColorsOptions* options) {
}
if (!flag) {
ffPrintError(FF_COLORS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", "Nothing to print");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Colors), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", "Nothing to print");
return false;
}
@@ -164,7 +164,7 @@ void ffParseColorsJsonObject(FFColorsOptions* options, yyjson_val* module) {
{},
});
if (error) {
ffPrintError(FF_COLORS_MODULE_NAME, 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Invalid %s value: %s", unsafe_yyjson_get_str(key), error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Colors), 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Invalid %s value: %s", unsafe_yyjson_get_str(key), error);
} else {
options->symbol = (FFColorsSymbol) value;
}
@@ -178,7 +178,7 @@ void ffParseColorsJsonObject(FFColorsOptions* options, yyjson_val* module) {
if (unsafe_yyjson_equals_str(key, "block")) {
if (!yyjson_is_obj(val)) {
ffPrintError(FF_COLORS_MODULE_NAME, 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Invalid %s value: must be an object", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Colors), 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Invalid %s value: must be an object", unsafe_yyjson_get_str(key));
} else {
yyjson_val* width = yyjson_obj_get(val, "width");
if (width) {
@@ -188,14 +188,14 @@ void ffParseColorsJsonObject(FFColorsOptions* options, yyjson_val* module) {
yyjson_val* range = yyjson_obj_get(val, "range");
if (range) {
if (!yyjson_is_arr(range) || yyjson_arr_size(range) != 2) {
ffPrintError(FF_COLORS_MODULE_NAME, 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Invalid %s.range value: must be an array of 2 elements", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Colors), 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Invalid %s.range value: must be an array of 2 elements", unsafe_yyjson_get_str(key));
} else {
uint8_t start = (uint8_t) yyjson_get_uint(yyjson_arr_get(range, 0));
uint8_t end = (uint8_t) yyjson_get_uint(yyjson_arr_get(range, 1));
if (start > end) {
ffPrintError(FF_COLORS_MODULE_NAME, 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Invalid %s.range value: range[0] > range[1]", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Colors), 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Invalid %s.range value: range[0] > range[1]", unsafe_yyjson_get_str(key));
} else if (end > 15) {
ffPrintError(FF_COLORS_MODULE_NAME, 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Invalid %s.range value: range[1] > 15", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Colors), 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Invalid %s.range value: range[1] > 15", unsafe_yyjson_get_str(key));
} else {
options->block.range[0] = start;
options->block.range[1] = end;
@@ -215,14 +215,14 @@ void ffParseColorsJsonObject(FFColorsOptions* options, yyjson_val* module) {
{},
});
if (error) {
ffPrintError(FF_COLORS_MODULE_NAME, 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Invalid %s value: %s", unsafe_yyjson_get_str(key), error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Colors), 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Invalid %s value: %s", unsafe_yyjson_get_str(key), error);
} else {
options->brightness = (FFColorsBrightness) value;
}
continue;
}
ffPrintError(FF_COLORS_MODULE_NAME, 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Colors), 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -295,7 +295,7 @@ void ffDestroyColorsOptions(FFColorsOptions* options) {
}
FFModuleBaseInfo ffColorsModuleInfo = {
.name = FF_COLORS_MODULE_NAME,
.name = "Colors",
.description = "Display the terminal's 16-color palette",
.displayName = {
.en = "Colors",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_COLORS_MODULE_NAME "Colors"
bool ffPrintColors(FFColorsOptions* options);
void ffInitColorsOptions(FFColorsOptions* options);
void ffDestroyColorsOptions(FFColorsOptions* options);
+8 -8
View File
@@ -8,12 +8,12 @@ bool ffPrintCommand(FFCommandOptions* options) {
const char* error = ffDetectCommand(options, &result);
if (error) {
ffPrintError(FF_COMMAND_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Command), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
if (!result.length) {
ffPrintError(FF_COMMAND_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No result generated");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Command), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No result generated");
return false;
}
@@ -23,18 +23,18 @@ bool ffPrintCommand(FFCommandOptions* options) {
size_t len = 0;
while (ffStrbufGetline(&line, &len, &result)) {
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_COMMAND_MODULE_NAME, ++index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Command), ++index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
puts(line);
} else {
FF_PRINT_FORMAT_CHECKED(FF_COMMAND_MODULE_NAME, ++index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) { FF_ARG(line, "result") }));
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Command), ++index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) { FF_ARG(line, "result") }));
}
}
} else {
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_COMMAND_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Command), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffStrbufPutTo(&result, stdout);
} else {
FF_PRINT_FORMAT_CHECKED(FF_COMMAND_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) { FF_ARG(result, "result") }));
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Command), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) { FF_ARG(result, "result") }));
}
}
@@ -79,7 +79,7 @@ void ffParseCommandJsonObject(FFCommandOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_COMMAND_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Command), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -153,7 +153,7 @@ void ffDestroyCommandOptions(FFCommandOptions* options) {
}
FFModuleBaseInfo ffCommandModuleInfo = {
.name = FF_COMMAND_MODULE_NAME,
.name = "Command",
.description = "Run custom shell scripts",
.displayName = {
.en = "Command",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_COMMAND_MODULE_NAME "Command"
bool ffPrepareCommand(FFCommandOptions* options);
bool ffPrintCommand(FFCommandOptions* options);
+7 -7
View File
@@ -23,9 +23,9 @@ bool ffPrintCPU(FFCPUOptions* options) {
const char* error = ffDetectCPU(options, &cpu);
if (error) {
ffPrintError(FF_CPU_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(CPU), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
} else if (cpu.vendor.length == 0 && cpu.name.length == 0 && cpu.coresOnline <= 1) {
ffPrintError(FF_CPU_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No CPU detected");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(CPU), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No CPU detected");
} else {
FF_STRBUF_AUTO_DESTROY coreTypes = ffStrbufCreate();
if (options->showPeCoreCount) {
@@ -43,7 +43,7 @@ bool ffPrintCPU(FFCPUOptions* options) {
}
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_CPU_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(CPU), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
FF_STRBUF_AUTO_DESTROY str = ffStrbufCreate();
@@ -85,7 +85,7 @@ bool ffPrintCPU(FFCPUOptions* options) {
FF_STRBUF_AUTO_DESTROY tempStr = ffStrbufCreate();
ffTempsAppendNum(cpu.temperature, &tempStr, options->tempConfig, &options->moduleArgs);
FF_PRINT_FORMAT_CHECKED(FF_CPU_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(CPU), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(cpu.name, "name"),
FF_ARG(cpu.vendor, "vendor"),
FF_ARG(cpu.coresPhysical, "cores-physical"),
@@ -131,7 +131,7 @@ void ffParseCPUJsonObject(FFCPUOptions* options, yyjson_val* module) {
}
if (unsafe_yyjson_equals_str(key, "freqNdigits")) {
ffPrintError(FF_CPU_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "modules.CPU.freqNdigits has been moved to display.freq.ndigits");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(CPU), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "modules.CPU.freqNdigits has been moved to display.freq.ndigits");
continue;
}
@@ -140,7 +140,7 @@ void ffParseCPUJsonObject(FFCPUOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_CPU_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(CPU), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -251,7 +251,7 @@ void ffDestroyCPUOptions(FFCPUOptions* options) {
}
FFModuleBaseInfo ffCPUModuleInfo = {
.name = FF_CPU_MODULE_NAME,
.name = "CPU",
.description = "Print CPU name, frequency, etc.",
.displayName = {
.en = "CPU",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_CPU_MODULE_NAME "CPU"
bool ffPrintCPU(FFCPUOptions* options);
void ffInitCPUOptions(FFCPUOptions* options);
void ffDestroyCPUOptions(FFCPUOptions* options);
+6 -8
View File
@@ -5,8 +5,6 @@
#include "detection/cpucache/cpucache.h"
#include "modules/cpucache/cpucache.h"
#define FF_CPUCACHE_DISPLAY_NAME "CPU Cache"
static void printCPUCacheNormal(const FFCPUCacheResult* result, FFCPUCacheOptions* options) {
FF_STRBUF_AUTO_DESTROY buffer = ffStrbufCreate();
FF_STRBUF_AUTO_DESTROY key = ffStrbufCreate();
@@ -16,7 +14,7 @@ static void printCPUCacheNormal(const FFCPUCacheResult* result, FFCPUCacheOption
ffStrbufClear(&key);
levelStr[1] = (char) ('1' + i);
if (options->moduleArgs.key.length == 0) {
ffStrbufAppendF(&key, "%s (%s)", FF_CPUCACHE_DISPLAY_NAME, levelStr);
ffStrbufAppendF(&key, "%s (%s)", FF_MODULE_GET_DISPLAY_NAME(CPUCache), levelStr);
} else {
uint32_t index = i + 1;
FF_PARSE_FORMAT_STRING_CHECKED(&key, &options->moduleArgs.key, ((FFformatarg[]) {
@@ -88,12 +86,12 @@ static void printCPUCacheCompact(const FFCPUCacheResult* result, FFCPUCacheOptio
}
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_CPUCACHE_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(CPUCache), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffStrbufPutTo(&buffer, stdout);
} else {
FF_STRBUF_AUTO_DESTROY buffer2 = ffStrbufCreate();
ffSizeAppendNum(sum, &buffer2);
FF_PRINT_FORMAT_CHECKED(FF_CPUCACHE_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(CPUCache), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(buffer, "result"),
FF_ARG(buffer2, "sum"),
}));
@@ -114,7 +112,7 @@ bool ffPrintCPUCache(FFCPUCacheOptions* options) {
const char* error = ffDetectCPUCache(&result);
if (error) {
ffPrintError(FF_CPUCACHE_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(CPUCache), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
goto exit;
}
@@ -147,7 +145,7 @@ void ffParseCPUCacheJsonObject(FFCPUCacheOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_CPUCACHE_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(CPUCache), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -223,7 +221,7 @@ void ffDestroyCPUCacheOptions(FFCPUCacheOptions* options) {
}
FFModuleBaseInfo ffCPUCacheModuleInfo = {
.name = FF_CPUCACHE_MODULE_NAME,
.name = "CPUCache",
.description = "Print CPU cache sizes",
.displayName = {
.en = "CPU Cache",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_CPUCACHE_MODULE_NAME "CPUCache"
bool ffPrintCPUCache(FFCPUCacheOptions* options);
void ffInitCPUCacheOptions(FFCPUCacheOptions* options);
void ffDestroyCPUCacheOptions(FFCPUCacheOptions* options);
+5 -7
View File
@@ -5,14 +5,12 @@
#include "detection/cpuusage/cpuusage.h"
#include "modules/cpuusage/cpuusage.h"
#define FF_CPUUSAGE_DISPLAY_NAME "CPU Usage"
bool ffPrintCPUUsage(FFCPUUsageOptions* options) {
FF_LIST_AUTO_DESTROY percentages = ffListCreate();
const char* error = ffGetCpuUsageResult(options, &percentages);
if (error) {
ffPrintError(FF_CPUUSAGE_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(CPUUsage), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
@@ -54,7 +52,7 @@ bool ffPrintCPUUsage(FFCPUUsageOptions* options) {
FFPercentageTypeFlags percentType = options->percent.type == 0 ? instance.config.display.percentType : options->percent.type;
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_CPUUSAGE_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(CPUUsage), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
FF_STRBUF_AUTO_DESTROY str = ffStrbufCreate();
if (!options->separate) {
@@ -102,7 +100,7 @@ bool ffPrintCPUUsage(FFCPUUsageOptions* options) {
ffPercentAppendBar(&maxBar, maxValue, options->percent, &options->moduleArgs);
}
FF_PRINT_FORMAT_CHECKED(FF_CPUUSAGE_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(CPUUsage), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(avgNum, "avg"),
FF_ARG(maxNum, "max"),
FF_ARG(maxIndex, "max-index"),
@@ -139,7 +137,7 @@ void ffParseCPUUsageJsonObject(FFCPUUsageOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_CPUUSAGE_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(CPUUsage), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -181,7 +179,7 @@ void ffDestroyCPUUsageOptions(FFCPUUsageOptions* options) {
}
FFModuleBaseInfo ffCPUUsageModuleInfo = {
.name = FF_CPUUSAGE_MODULE_NAME,
.name = "CPUUsage",
.description = "Print CPU usage. Collecting data takes some time",
.displayName = {
.en = "CPU Usage",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_CPUUSAGE_MODULE_NAME "CPUUsage"
void ffPrepareCPUUsage();
bool ffPrintCPUUsage(FFCPUUsageOptions* options);
+5 -5
View File
@@ -14,7 +14,7 @@ bool ffPrintCursor(FFCursorOptions* options) {
ffDetectCursor(&result);
if (result.error.length) {
ffPrintError(FF_CURSOR_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", result.error.chars);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Cursor), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", result.error.chars);
} else {
ffStrbufRemoveIgnCaseEndS(&result.theme, "cursors");
ffStrbufRemoveIgnCaseEndS(&result.theme, "cursor");
@@ -25,7 +25,7 @@ bool ffPrintCursor(FFCursorOptions* options) {
}
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_CURSOR_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Cursor), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffStrbufWriteTo(&result.theme, stdout);
if (result.size.length > 0 && !ffStrbufEqualS(&result.size, "0")) {
@@ -34,7 +34,7 @@ bool ffPrintCursor(FFCursorOptions* options) {
putchar('\n');
} else {
FF_PRINT_FORMAT_CHECKED(FF_CURSOR_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Cursor), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(result.theme, "theme"),
FF_ARG(result.size, "size"),
}));
@@ -58,7 +58,7 @@ void ffParseCursorJsonObject(FFCursorOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_CURSOR_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Cursor), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -100,7 +100,7 @@ void ffDestroyCursorOptions(FFCursorOptions* options) {
}
FFModuleBaseInfo ffCursorModuleInfo = {
.name = FF_CURSOR_MODULE_NAME,
.name = "Cursor",
.description = "Print cursor style name",
.displayName = {
.en = "Cursor",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_CURSOR_MODULE_NAME "Cursor"
bool ffPrintCursor(FFCursorOptions* options);
void ffInitCursorOptions(FFCursorOptions* options);
void ffDestroyCursorOptions(FFCursorOptions* options);
+3 -3
View File
@@ -5,7 +5,7 @@
#include "modules/custom/custom.h"
bool ffPrintCustom(FFCustomOptions* options) {
ffPrintFormat(FF_CUSTOM_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, 0, ((FFformatarg[]) {}));
ffPrintFormat(FF_MODULE_GET_DISPLAY_NAME(Custom), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, 0, ((FFformatarg[]) {}));
return true;
}
@@ -21,7 +21,7 @@ void ffParseCustomJsonObject(FFCustomOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_CUSTOM_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Custom), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -35,7 +35,7 @@ void ffDestroyCustomOptions(FFCustomOptions* options) {
}
FFModuleBaseInfo ffCustomModuleInfo = {
.name = FF_CUSTOM_MODULE_NAME,
.name = "Custom",
.description = "Print a custom string, with or without key",
.displayName = {
.en = "Custom",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_CUSTOM_MODULE_NAME "Custom"
bool ffPrintCustom(FFCustomOptions* options);
void ffInitCustomOptions(FFCustomOptions* options);
void ffDestroyCustomOptions(FFCustomOptions* options);
+5 -7
View File
@@ -8,8 +8,6 @@
#pragma GCC diagnostic ignored "-Wformat" // warning: unknown conversion type character 'F' in format
#define FF_DATETIME_DISPLAY_NAME "Date & Time"
typedef struct FFDateTimeResult {
// Examples for 21.02.2022 - 15:18:37
uint16_t year; // 2022
@@ -67,7 +65,7 @@ static void printDateTimeFormat(struct tm* tm, const FFModuleArgs* moduleArgs) {
strftime(result.amPm, sizeof(result.amPm), "%p", tm);
FF_PRINT_FORMAT_CHECKED(
FF_DATETIME_DISPLAY_NAME,
FF_MODULE_GET_DISPLAY_NAME(DateTime),
0,
moduleArgs,
FF_PRINT_TYPE_DEFAULT,
@@ -112,11 +110,11 @@ bool ffPrintDateTime(FFDateTimeOptions* options) {
char buffer[32];
if (strftime(buffer, ARRAY_SIZE(buffer), "%F %T", tm) == 0) // yyyy-MM-dd HH:mm:ss
{
ffPrintError(FF_DATETIME_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "strftime() failed");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(DateTime), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "strftime() failed");
return false;
}
ffPrintLogoAndKey(FF_DATETIME_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(DateTime), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
puts(buffer);
return true;
@@ -130,7 +128,7 @@ void ffParseDateTimeJsonObject(FFDateTimeOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_DATETIME_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(DateTime), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -152,7 +150,7 @@ void ffDestroyDateTimeOptions(FFDateTimeOptions* options) {
}
FFModuleBaseInfo ffDateTimeModuleInfo = {
.name = FF_DATETIME_MODULE_NAME,
.name = "DateTime",
.description = "Print the current date and time",
.displayName = {
.en = "Date & Time",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_DATETIME_MODULE_NAME "DateTime"
bool ffPrintDateTime(FFDateTimeOptions* options);
void ffInitDateTimeOptions(FFDateTimeOptions* options);
void ffDestroyDateTimeOptions(FFDateTimeOptions* options);
+6 -6
View File
@@ -9,7 +9,7 @@ bool ffPrintDE(FFDEOptions* options) {
const FFDisplayServerResult* result = ffConnectDisplayServer();
if (result->dePrettyName.length == 0) {
ffPrintError(FF_DE_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No DE found");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(DE), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No DE found");
return false;
}
@@ -17,7 +17,7 @@ bool ffPrintDE(FFDEOptions* options) {
ffDetectDEVersion(&result->dePrettyName, &version, options);
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_DE_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(DE), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffStrbufWriteTo(&result->dePrettyName, stdout);
@@ -28,7 +28,7 @@ bool ffPrintDE(FFDEOptions* options) {
putchar('\n');
} else {
FF_PRINT_FORMAT_CHECKED(FF_DE_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) { FF_ARG(result->deProcessName, "process-name"), FF_ARG(result->dePrettyName, "pretty-name"), FF_ARG(version, "version") }));
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(DE), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) { FF_ARG(result->deProcessName, "process-name"), FF_ARG(result->dePrettyName, "pretty-name"), FF_ARG(version, "version") }));
}
return true;
@@ -43,11 +43,11 @@ void ffParseDEJsonObject(FFDEOptions* options, yyjson_val* module) {
}
if (unsafe_yyjson_equals_str(key, "slowVersionDetection")) {
ffPrintError(FF_DE_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Key `slowVersionDetection` is deprecated, it's always true");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(DE), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Key `slowVersionDetection` is deprecated, it's always true");
continue;
}
ffPrintError(FF_DE_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(DE), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -82,7 +82,7 @@ void ffDestroyDEOptions(FFDEOptions* options) {
}
FFModuleBaseInfo ffDEModuleInfo = {
.name = FF_DE_MODULE_NAME,
.name = "DE",
.description = "Print desktop environment name",
.displayName = {
.en = "Desktop Environment",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_DE_MODULE_NAME "DE"
bool ffPrintDE(FFDEOptions* options);
void ffInitDEOptions(FFDEOptions* options);
void ffDestroyDEOptions(FFDEOptions* options);
+5 -5
View File
@@ -16,7 +16,7 @@ static void printDisk(FFDiskOptions* options, const FFDisk* disk, uint32_t index
FF_STRBUF_AUTO_DESTROY key = ffStrbufCreate();
if (options->moduleArgs.key.length == 0) {
ffStrbufSetF(&key, "%s (%s)", FF_DISK_MODULE_NAME, disk->mountpoint.chars);
ffStrbufSetF(&key, "%s (%s)", FF_MODULE_GET_DISPLAY_NAME(Disk), disk->mountpoint.chars);
} else {
FF_STRBUF_AUTO_DESTROY mountpointLink = ffStrbufCreate();
FF_STRBUF_AUTO_DESTROY nameLink = ffStrbufCreate();
@@ -187,12 +187,12 @@ bool ffPrintDisk(FFDiskOptions* options) {
const char* error = ffDetectDisks(options, &disks);
if (error) {
ffPrintError(FF_DISK_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Disk), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
if (disks.length == 0) {
ffPrintError(FF_DISK_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No disks found");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Disk), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No disks found");
return false;
}
@@ -327,7 +327,7 @@ void ffParseDiskJsonObject(FFDiskOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_DISK_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Disk), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -451,7 +451,7 @@ void ffDestroyDiskOptions(FFDiskOptions* options) {
}
FFModuleBaseInfo ffDiskModuleInfo = {
.name = FF_DISK_MODULE_NAME,
.name = "Disk",
.description = "Print partitions, space usage, file system, etc",
.displayName = {
.en = "Disk",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_DISK_MODULE_NAME "Disk"
bool ffPrintDisk(FFDiskOptions* options);
void ffInitDiskOptions(FFDiskOptions* options);
void ffDestroyDiskOptions(FFDiskOptions* options);
+4 -6
View File
@@ -5,15 +5,13 @@
#include "detection/diskio/diskio.h"
#include "modules/diskio/diskio.h"
#define FF_DISKIO_DISPLAY_NAME "Disk IO"
static int sortDevices(const FFDiskIOResult* left, const FFDiskIOResult* right) {
return ffStrbufComp(&left->name, &right->name);
}
static void formatKey(const FFDiskIOOptions* options, FFDiskIOResult* dev, uint32_t index, FFstrbuf* key) {
if (options->moduleArgs.key.length == 0) {
ffStrbufSetF(key, FF_DISKIO_DISPLAY_NAME " (%s)", dev->name.length ? dev->name.chars : dev->devPath.chars);
ffStrbufSetF(key, "%s (%s)", FF_MODULE_GET_DISPLAY_NAME(DiskIO), dev->name.length ? dev->name.chars : dev->devPath.chars);
} else {
ffStrbufClear(key);
FF_PARSE_FORMAT_STRING_CHECKED(key, &options->moduleArgs.key, ((FFformatarg[]) {
@@ -30,7 +28,7 @@ bool ffPrintDiskIO(FFDiskIOOptions* options) {
const char* error = ffDetectDiskIO(&result, options);
if (error) {
ffPrintError(FF_DISKIO_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_NO_CUSTOM_KEY, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(DiskIO), 0, &options->moduleArgs, FF_PRINT_TYPE_NO_CUSTOM_KEY, "%s", error);
return false;
}
@@ -116,7 +114,7 @@ void ffParseDiskIOJsonObject(FFDiskIOOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_DISKIO_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(DiskIO), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -172,7 +170,7 @@ void ffDestroyDiskIOOptions(FFDiskIOOptions* options) {
}
FFModuleBaseInfo ffDiskIOModuleInfo = {
.name = FF_DISKIO_MODULE_NAME,
.name = "DiskIO",
.description = "Print physical disk I/O throughput",
.displayName = {
.en = "Disk I/O",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_DISKIO_MODULE_NAME "DiskIO"
void ffPrepareDiskIO(FFDiskIOOptions* options);
bool ffPrintDiskIO(FFDiskIOOptions* options);
+9 -9
View File
@@ -19,7 +19,7 @@ bool ffPrintDisplay(FFDisplayOptions* options) {
const FFDisplayServerResult* dsResult = ffConnectDisplayServer();
if (dsResult->displays.length == 0) {
ffPrintError(FF_DISPLAY_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Couldn't detect display");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Display), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Couldn't detect display");
return false;
}
@@ -28,7 +28,7 @@ bool ffPrintDisplay(FFDisplayOptions* options) {
}
if (options->compactType != FF_DISPLAY_COMPACT_TYPE_NONE) {
ffPrintLogoAndKey(FF_DISPLAY_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Display), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
FF_STRBUF_AUTO_DESTROY buffer = ffStrbufCreate();
FF_LIST_FOR_EACH (FFDisplayResult, result, dsResult->displays) {
@@ -71,11 +71,11 @@ bool ffPrintDisplay(FFDisplayOptions* options) {
ffStrbufClear(&key);
if (options->moduleArgs.key.length == 0) {
if (result->name.length) {
ffStrbufAppendF(&key, "%s (%s)", FF_DISPLAY_MODULE_NAME, result->name.chars);
ffStrbufAppendF(&key, "%s (%s)", FF_MODULE_GET_DISPLAY_NAME(Display), result->name.chars);
} else if (moduleIndex > 0) {
ffStrbufAppendF(&key, "%s (%d)", FF_DISPLAY_MODULE_NAME, moduleIndex);
ffStrbufAppendF(&key, "%s (%d)", FF_MODULE_GET_DISPLAY_NAME(Display), moduleIndex);
} else {
ffStrbufAppendS(&key, FF_DISPLAY_MODULE_NAME);
ffStrbufAppendS(&key, FF_MODULE_GET_DISPLAY_NAME(Display));
}
} else {
FF_PARSE_FORMAT_STRING_CHECKED(&key, &options->moduleArgs.key, ((FFformatarg[]) {
@@ -221,7 +221,7 @@ void ffParseDisplayJsonObject(FFDisplayOptions* options, yyjson_val* module) {
{},
});
if (error) {
ffPrintError(FF_DISPLAY_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Invalid %s value: %s", unsafe_yyjson_get_str(key), error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Display), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Invalid %s value: %s", unsafe_yyjson_get_str(key), error);
} else {
options->compactType = (FFDisplayCompactType) value;
}
@@ -246,7 +246,7 @@ void ffParseDisplayJsonObject(FFDisplayOptions* options, yyjson_val* module) {
{},
});
if (error) {
ffPrintError(FF_DISPLAY_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Invalid %s value: %s", unsafe_yyjson_get_str(key), error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Display), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Invalid %s value: %s", unsafe_yyjson_get_str(key), error);
} else {
options->order = (FFDisplayOrder) value;
}
@@ -254,7 +254,7 @@ void ffParseDisplayJsonObject(FFDisplayOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_DISPLAY_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Display), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -411,7 +411,7 @@ void ffDestroyDisplayOptions(FFDisplayOptions* options) {
}
FFModuleBaseInfo ffDisplayModuleInfo = {
.name = FF_DISPLAY_MODULE_NAME,
.name = "Display",
.description = "Print resolutions, refresh rates, etc",
.displayName = {
.en = "Display",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_DISPLAY_MODULE_NAME "Display"
bool ffPrintDisplay(FFDisplayOptions* options);
void ffInitDisplayOptions(FFDisplayOptions* options);
void ffDestroyDisplayOptions(FFDisplayOptions* options);
+7 -7
View File
@@ -10,12 +10,12 @@ bool ffPrintDNS(FFDNSOptions* options) {
const char* error = ffDetectDNS(options, &result);
if (error) {
ffPrintError(FF_DNS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(DNS), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
if (result.length == 0) {
ffPrintError(FF_DNS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "NO DNS servers detected");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(DNS), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "NO DNS servers detected");
return false;
}
@@ -40,11 +40,11 @@ bool ffPrintDNS(FFDNSOptions* options) {
}
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_DNS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(DNS), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffStrbufPutTo(&buf, stdout);
} else {
FF_PRINT_FORMAT_CHECKED(FF_DNS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(DNS), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(buf, "result"),
}));
}
@@ -73,14 +73,14 @@ void ffParseDNSJsonObject(FFDNSOptions* options, yyjson_val* module) {
{},
});
if (error) {
ffPrintError(FF_DNS_MODULE_NAME, 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Invalid %s value: %s", unsafe_yyjson_get_str(key), error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(DNS), 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Invalid %s value: %s", unsafe_yyjson_get_str(key), error);
} else {
options->showType = (FFDNSShowType) value;
}
continue;
}
ffPrintError(FF_DNS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(DNS), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -134,7 +134,7 @@ void ffDestroyDNSOptions(FFDNSOptions* options) {
}
FFModuleBaseInfo ffDNSModuleInfo = {
.name = FF_DNS_MODULE_NAME,
.name = "DNS",
.description = "Print configured DNS servers",
.displayName = {
.en = "DNS",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_DNS_MODULE_NAME "DNS"
bool ffPrintDNS(FFDNSOptions* options);
void ffInitDNSOptions(FFDNSOptions* options);
void ffDestroyDNSOptions(FFDNSOptions* options);
+5 -5
View File
@@ -16,12 +16,12 @@ bool ffPrintEditor(FFEditorOptions* options) {
const char* error = ffDetectEditor(&result);
if (error) {
ffPrintError(FF_EDITOR_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Editor), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_EDITOR_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Editor), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
if (result.exe.length) {
ffStrbufWriteTo(&result.exe, stdout);
if (result.version.length) {
@@ -32,7 +32,7 @@ bool ffPrintEditor(FFEditorOptions* options) {
}
putchar('\n');
} else {
FF_PRINT_FORMAT_CHECKED(FF_EDITOR_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Editor), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(result.type, "type"),
FF_ARG(result.name, "name"),
FF_ARG(result.exe, "exe-name"),
@@ -57,7 +57,7 @@ void ffParseEditorJsonObject(FFEditorOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_EDITOR_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Editor), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -103,7 +103,7 @@ void ffDestroyEditorOptions(FFEditorOptions* options) {
}
FFModuleBaseInfo ffEditorModuleInfo = {
.name = FF_EDITOR_MODULE_NAME,
.name = "Editor",
.description = "Print information about the default editor ($VISUAL or $EDITOR)",
.displayName = {
.en = "Editor",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_EDITOR_MODULE_NAME "Editor"
bool ffPrintEditor(FFEditorOptions* options);
void ffInitEditorOptions(FFEditorOptions* options);
void ffDestroyEditorOptions(FFEditorOptions* options);
+5 -5
View File
@@ -15,13 +15,13 @@ bool ffPrintFont(FFFontOptions* options) {
const char* error = ffDetectFont(&font);
if (error) {
ffPrintError(FF_FONT_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Font), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
} else {
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_FONT_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Font), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffStrbufPutTo(&font.display, stdout);
} else {
FF_PRINT_FORMAT_CHECKED(FF_FONT_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Font), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(font.fonts[0], "font1"),
FF_ARG(font.fonts[1], "font2"),
FF_ARG(font.fonts[2], "font3"),
@@ -49,7 +49,7 @@ void ffParseFontJsonObject(FFFontOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_FONT_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Font), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -95,7 +95,7 @@ void ffDestroyFontOptions(FFFontOptions* options) {
}
FFModuleBaseInfo ffFontModuleInfo = {
.name = FF_FONT_MODULE_NAME,
.name = "Font",
.description = "Print system font names",
.displayName = {
.en = "Font",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_FONT_MODULE_NAME "Font"
bool ffPrintFont(FFFontOptions* options);
void ffInitFontOptions(FFFontOptions* options);
void ffDestroyFontOptions(FFFontOptions* options);
+7 -7
View File
@@ -8,7 +8,7 @@
static void printDevice(FFGamepadOptions* options, const FFGamepadDevice* device, uint8_t index) {
FFPercentageTypeFlags percentType = options->percent.type == 0 ? instance.config.display.percentType : options->percent.type;
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_GAMEPAD_MODULE_NAME, index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Gamepad), index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
FF_STRBUF_AUTO_DESTROY buffer = ffStrbufCreate();
bool showBatteryLevel = device->battery > 0 && device->battery <= 100;
@@ -39,7 +39,7 @@ static void printDevice(FFGamepadOptions* options, const FFGamepadDevice* device
ffPercentAppendBar(&percentageBar, device->battery, options->percent, &options->moduleArgs);
}
FF_PRINT_FORMAT_CHECKED(FF_GAMEPAD_MODULE_NAME, index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Gamepad), index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(device->name, "name"),
FF_ARG(device->serial, "serial"),
FF_ARG(percentageNum, "battery-percentage"),
@@ -54,12 +54,12 @@ bool ffPrintGamepad(FFGamepadOptions* options) {
const char* error = ffDetectGamepad(&result);
if (error) {
ffPrintError(FF_GAMEPAD_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Gamepad), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
if (!result.length) {
ffPrintError(FF_GAMEPAD_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No devices detected");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Gamepad), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No devices detected");
return false;
}
@@ -80,7 +80,7 @@ bool ffPrintGamepad(FFGamepadOptions* options) {
bool ret = true;
if (!filtered.length) {
ffPrintError(FF_GAMEPAD_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "All devices are ignored");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Gamepad), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "All devices are ignored");
ret = false;
} else {
uint8_t index = 0;
@@ -122,7 +122,7 @@ void ffParseGamepadJsonObject(FFGamepadOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_GAMEPAD_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Gamepad), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -189,7 +189,7 @@ void ffDestroyGamepadOptions(FFGamepadOptions* options) {
}
FFModuleBaseInfo ffGamepadModuleInfo = {
.name = FF_GAMEPAD_MODULE_NAME,
.name = "Gamepad",
.description = "List connected gamepads",
.displayName = {
.en = "Gamepad",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_GAMEPAD_MODULE_NAME "Gamepad"
bool ffPrintGamepad(FFGamepadOptions* options);
void ffInitGamepadOptions(FFGamepadOptions* options);
void ffDestroyGamepadOptions(FFGamepadOptions* options);
+8 -8
View File
@@ -28,7 +28,7 @@ static void printGPUResult(FFGPUOptions* options, uint8_t index, const FFGPUResu
FFPercentageTypeFlags percentType = options->percent.type == 0 ? instance.config.display.percentType : options->percent.type;
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_GPU_MODULE_NAME, index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(GPU), index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
FF_STRBUF_AUTO_DESTROY output = ffStrbufCreate();
@@ -145,7 +145,7 @@ static void printGPUResult(FFGPUOptions* options, uint8_t index, const FFGPUResu
snprintf(currSpeed, sizeof(currSpeed), "%d x%d", gpu->psCurr.gen, gpu->psCurr.lanes);
}
FF_PRINT_FORMAT_CHECKED(FF_GPU_MODULE_NAME, index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(GPU), index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(gpu->vendor, "vendor"),
FF_ARG(gpu->name, "name"),
FF_ARG(gpu->driver, "driver"),
@@ -176,7 +176,7 @@ bool ffPrintGPU(FFGPUOptions* options) {
FF_LIST_AUTO_DESTROY gpus = ffListCreate();
const char* error = ffDetectGPU(options, &gpus);
if (error) {
ffPrintError(FF_GPU_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(GPU), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
@@ -213,7 +213,7 @@ bool ffPrintGPU(FFGPUOptions* options) {
}
if (selectedGPUs.length == 0) {
ffPrintError(FF_GPU_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, (gpus.length > 0 ? "GPUs found but all hidden by hideType option" : "No GPUs detected"));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(GPU), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, (gpus.length > 0 ? "GPUs found but all hidden by hideType option" : "No GPUs detected"));
return false;
}
@@ -249,7 +249,7 @@ void ffParseGPUJsonObject(FFGPUOptions* options, yyjson_val* module) {
{},
});
if (error) {
ffPrintError(FF_GPU_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Invalid %s value: %s", unsafe_yyjson_get_str(key), error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(GPU), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Invalid %s value: %s", unsafe_yyjson_get_str(key), error);
} else {
options->detectionMethod = (FFGPUDetectionMethod) value;
}
@@ -269,7 +269,7 @@ void ffParseGPUJsonObject(FFGPUOptions* options, yyjson_val* module) {
{},
});
if (error) {
ffPrintError(FF_GPU_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Invalid %s value: %s", unsafe_yyjson_get_str(key), error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(GPU), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Invalid %s value: %s", unsafe_yyjson_get_str(key), error);
} else {
options->hideType = (FFGPUType) value;
}
@@ -281,7 +281,7 @@ void ffParseGPUJsonObject(FFGPUOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_GPU_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(GPU), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -479,7 +479,7 @@ void ffDestroyGPUOptions(FFGPUOptions* options) {
}
FFModuleBaseInfo ffGPUModuleInfo = {
.name = FF_GPU_MODULE_NAME,
.name = "GPU",
.description = "Print GPU names, memory sizes, types, etc",
.displayName = {
.en = "GPU",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_GPU_MODULE_NAME "GPU"
bool ffPrintGPU(FFGPUOptions* options);
void ffInitGPUOptions(FFGPUOptions* options);
void ffDestroyGPUOptions(FFGPUOptions* options);
+6 -6
View File
@@ -17,17 +17,17 @@ bool ffPrintHost(FFHostOptions* options) {
const char* error = ffDetectHost(&host);
if (error) {
ffPrintError(FF_HOST_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Host), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
goto exit;
}
if (host.name.length == 0 && host.family.length == 0) {
ffPrintError(FF_HOST_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "neither product_family nor product_name is set by O.E.M.");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Host), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "neither product_family nor product_name is set by O.E.M.");
goto exit;
}
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_HOST_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Host), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
FF_STRBUF_AUTO_DESTROY output = ffStrbufCreate();
@@ -43,7 +43,7 @@ bool ffPrintHost(FFHostOptions* options) {
ffStrbufPutTo(&output, stdout);
} else {
FF_PRINT_FORMAT_CHECKED(FF_HOST_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Host), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(host.family, "family"),
FF_ARG(host.name, "name"),
FF_ARG(host.version, "version"),
@@ -75,7 +75,7 @@ void ffParseHostJsonObject(FFHostOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_HOST_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Host), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -136,7 +136,7 @@ void ffDestroyHostOptions(FFHostOptions* options) {
}
FFModuleBaseInfo ffHostModuleInfo = {
.name = FF_HOST_MODULE_NAME,
.name = "Host",
.description = "Print your computer's product name",
.displayName = {
.en = "Host",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_HOST_MODULE_NAME "Host"
bool ffPrintHost(FFHostOptions* options);
void ffInitHostOptions(FFHostOptions* options);
void ffDestroyHostOptions(FFHostOptions* options);
+5 -5
View File
@@ -13,12 +13,12 @@ bool ffPrintIcons(FFIconsOptions* options) {
const char* error = ffDetectIcons(&result);
if (error) {
ffPrintError(FF_ICONS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Icons), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
goto exit;
}
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_ICONS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Icons), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
if (result.icons1.length) {
ffStrbufWriteTo(&result.icons1, stdout);
}
@@ -30,7 +30,7 @@ bool ffPrintIcons(FFIconsOptions* options) {
}
putchar('\n');
} else {
FF_PRINT_FORMAT_CHECKED(FF_ICONS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Icons), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(result.icons1, "icons1"),
FF_ARG(result.icons2, "icons2"),
}));
@@ -52,7 +52,7 @@ void ffParseIconsJsonObject(FFIconsOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_ICONS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Icons), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -94,7 +94,7 @@ void ffDestroyIconsOptions(FFIconsOptions* options) {
}
FFModuleBaseInfo ffIconsModuleInfo = {
.name = FF_ICONS_MODULE_NAME,
.name = "Icons",
.description = "Print icon style name",
.displayName = {
.en = "Icons",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_ICONS_MODULE_NAME "Icons"
bool ffPrintIcons(FFIconsOptions* options);
void ffInitIconsOptions(FFIconsOptions* options);
void ffDestroyIconsOptions(FFIconsOptions* options);
+5 -7
View File
@@ -4,8 +4,6 @@
#include "detection/initsystem/initsystem.h"
#include "modules/initsystem/initsystem.h"
#define FF_INITSYSTEM_DISPLAY_NAME "Init System"
bool ffPrintInitSystem(FFInitSystemOptions* options) {
bool success = false;
FFInitSystemResult result = {
@@ -18,12 +16,12 @@ bool ffPrintInitSystem(FFInitSystemOptions* options) {
const char* error = ffDetectInitSystem(&result);
if (error) {
ffPrintError(FF_INITSYSTEM_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(InitSystem), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
goto exit;
}
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_INITSYSTEM_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(InitSystem), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffStrbufWriteTo(&result.name, stdout);
if (result.version.length) {
printf(" %s\n", result.version.chars);
@@ -31,7 +29,7 @@ bool ffPrintInitSystem(FFInitSystemOptions* options) {
putchar('\n');
}
} else {
FF_PRINT_FORMAT_CHECKED(FF_INITSYSTEM_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(InitSystem), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(result.name, "name"),
FF_ARG(result.exe, "exe"),
FF_ARG(result.version, "version"),
@@ -56,7 +54,7 @@ void ffParseInitSystemJsonObject(FFInitSystemOptions* options, yyjson_val* modul
continue;
}
ffPrintError(FF_INITSYSTEM_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(InitSystem), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -103,7 +101,7 @@ void ffDestroyInitSystemOptions(FFInitSystemOptions* options) {
}
FFModuleBaseInfo ffInitSystemModuleInfo = {
.name = FF_INITSYSTEM_MODULE_NAME,
.name = "InitSystem",
.description = "Print init system (pid 1) name and version",
.displayName = {
.en = "Init System",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_INITSYSTEM_MODULE_NAME "InitSystem"
bool ffPrintInitSystem(FFInitSystemOptions* options);
void ffInitInitSystemOptions(FFInitSystemOptions* options);
void ffDestroyInitSystemOptions(FFInitSystemOptions* options);
+4 -4
View File
@@ -7,12 +7,12 @@
bool ffPrintKernel(FFKernelOptions* options) {
const FFPlatformSysinfo* info = &instance.state.platform.sysinfo;
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_KERNEL_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Kernel), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
printf("%s %s\n", info->name.chars, info->release.chars);
} else {
FF_STRBUF_AUTO_DESTROY str = ffStrbufCreate();
ffSizeAppendNum(info->pageSize, &str);
FF_PRINT_FORMAT_CHECKED(FF_KERNEL_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Kernel), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(info->name, "sysname"),
FF_ARG(info->release, "release"),
FF_ARG(info->version, "version"),
@@ -32,7 +32,7 @@ void ffParseKernelJsonObject(FFKernelOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_KERNEL_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Kernel), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -62,7 +62,7 @@ void ffDestroyKernelOptions(FFKernelOptions* options) {
}
FFModuleBaseInfo ffKernelModuleInfo = {
.name = FF_KERNEL_MODULE_NAME,
.name = "Kernel",
.description = "Print system kernel version",
.displayName = {
.en = "Kernel",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_KERNEL_MODULE_NAME "Kernel"
bool ffPrintKernel(FFKernelOptions* options);
void ffInitKernelOptions(FFKernelOptions* options);
void ffDestroyKernelOptions(FFKernelOptions* options);
+7 -7
View File
@@ -7,10 +7,10 @@
static void printDevice(FFKeyboardOptions* options, const FFKeyboardDevice* device, uint8_t index) {
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_KEYBOARD_MODULE_NAME, index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Keyboard), index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffStrbufPutTo(&device->name, stdout);
} else {
FF_PRINT_FORMAT_CHECKED(FF_KEYBOARD_MODULE_NAME, index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Keyboard), index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(device->name, "name"),
FF_ARG(device->serial, "serial"),
}));
@@ -23,12 +23,12 @@ bool ffPrintKeyboard(FFKeyboardOptions* options) {
const char* error = ffDetectKeyboard(&result);
if (error) {
ffPrintError(FF_KEYBOARD_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Keyboard), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
if (!result.length) {
ffPrintError(FF_KEYBOARD_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No devices detected");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Keyboard), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No devices detected");
return false;
}
@@ -49,7 +49,7 @@ bool ffPrintKeyboard(FFKeyboardOptions* options) {
bool ret = true;
if (!filtered.length) {
ffPrintError(FF_KEYBOARD_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "All devices are ignored");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Keyboard), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "All devices are ignored");
ret = false;
} else {
uint8_t index = 0;
@@ -84,7 +84,7 @@ void ffParseKeyboardJsonObject(FFKeyboardOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_KEYBOARD_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Keyboard), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -149,7 +149,7 @@ void ffDestroyKeyboardOptions(FFKeyboardOptions* options) {
}
FFModuleBaseInfo ffKeyboardModuleInfo = {
.name = FF_KEYBOARD_MODULE_NAME,
.name = "Keyboard",
.description = "List connected keyboards",
.displayName = {
.en = "Keyboard",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_KEYBOARD_MODULE_NAME "Keyboard"
bool ffPrintKeyboard(FFKeyboardOptions* options);
void ffInitKeyboardOptions(FFKeyboardOptions* options);
void ffDestroyKeyboardOptions(FFKeyboardOptions* options);
+6 -6
View File
@@ -13,17 +13,17 @@ bool ffPrintLM(FFLMOptions* options) {
const char* error = ffDetectLM(&result);
if (error) {
ffPrintError(FF_LM_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(LM), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
goto exit;
}
if (result.service.length == 0) {
ffPrintError(FF_LM_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No LM service found");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(LM), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No LM service found");
goto exit;
}
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_LM_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(LM), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffStrbufWriteTo(&result.service, stdout);
if (result.version.length) {
printf(" %s", result.version.chars);
@@ -33,7 +33,7 @@ bool ffPrintLM(FFLMOptions* options) {
}
putchar('\n');
} else {
FF_PRINT_FORMAT_CHECKED(FF_LM_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(LM), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(result.service, "service"),
FF_ARG(result.type, "type"),
FF_ARG(result.version, "version"),
@@ -57,7 +57,7 @@ void ffParseLMJsonObject(FFLMOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_LM_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(LM), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -106,7 +106,7 @@ void ffDestroyLMOptions(FFLMOptions* options) {
}
FFModuleBaseInfo ffLMModuleInfo = {
.name = FF_LM_MODULE_NAME,
.name = "LM",
.description = "Print login manager (desktop manager) name and version",
.displayName = {
.en = "Login Manager",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_LM_MODULE_NAME "LM"
bool ffPrintLM(FFLMOptions* options);
void ffInitLMOptions(FFLMOptions* options);
void ffDestroyLMOptions(FFLMOptions* options);
+6 -6
View File
@@ -11,13 +11,13 @@ bool ffPrintLoadavg(FFLoadavgOptions* options) {
const char* error = ffDetectLoadavg(result);
if (error) {
ffPrintError(FF_LOADAVG_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Loadavg), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
if (options->moduleArgs.outputFormat.length == 0) {
if (options->compact) {
ffPrintLogoAndKey(FF_LOADAVG_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Loadavg), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
printf("%.*f, %.*f, %.*f\n", options->ndigits, result[0], options->ndigits, result[1], options->ndigits, result[2]);
} else {
FFCPUResult cpu = {
@@ -34,7 +34,7 @@ bool ffPrintLoadavg(FFLoadavgOptions* options) {
uint32_t duration = index == 0 ? 1 : index == 1 ? 5
: 15;
if (options->moduleArgs.key.length == 0) {
ffStrbufSetF(&buffer, "%s (%d min)", FF_LOADAVG_MODULE_NAME, duration);
ffStrbufSetF(&buffer, "%s (%d min)", FF_MODULE_GET_DISPLAY_NAME(Loadavg), duration);
} else {
ffStrbufClear(&buffer);
FF_PARSE_FORMAT_STRING_CHECKED(&buffer, &options->moduleArgs.key, ((FFformatarg[]) {
@@ -72,7 +72,7 @@ bool ffPrintLoadavg(FFLoadavgOptions* options) {
}
}
} else {
FF_PRINT_FORMAT_CHECKED(FF_LOADAVG_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Loadavg), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(result[0], "loadavg1"),
FF_ARG(result[1], "loadavg2"),
FF_ARG(result[2], "loadavg3"),
@@ -104,7 +104,7 @@ void ffParseLoadavgJsonObject(FFLoadavgOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_LOADAVG_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Loadavg), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -148,7 +148,7 @@ void ffDestroyLoadavgOptions(FFLoadavgOptions* options) {
}
FFModuleBaseInfo ffLoadavgModuleInfo = {
.name = FF_LOADAVG_MODULE_NAME,
.name = "Loadavg",
.description = "Print system load averages",
.displayName = {
.en = "Load Average",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_LOADAVG_MODULE_NAME "Loadavg"
bool ffPrintLoadavg(FFLoadavgOptions* options);
void ffInitLoadavgOptions(FFLoadavgOptions* options);
void ffDestroyLoadavgOptions(FFLoadavgOptions* options);
+5 -5
View File
@@ -8,15 +8,15 @@ bool ffPrintLocale(FFLocaleOptions* options) {
const char* error = ffDetectLocale(&locale);
if (error) {
ffPrintError(FF_LOCALE_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Locale), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_LOCALE_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Locale), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffStrbufPutTo(&locale, stdout);
} else {
FF_PRINT_FORMAT_CHECKED(FF_LOCALE_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) { FF_ARG(locale, "result") }));
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Locale), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) { FF_ARG(locale, "result") }));
}
return true;
@@ -30,7 +30,7 @@ void ffParseLocaleJsonObject(FFLocaleOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_LOCALE_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Locale), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -67,7 +67,7 @@ void ffDestroyLocaleOptions(FFLocaleOptions* options) {
}
FFModuleBaseInfo ffLocaleModuleInfo = {
.name = FF_LOCALE_MODULE_NAME,
.name = "Locale",
.description = "Print system locale name",
.displayName = {
.en = "Locale",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_LOCALE_MODULE_NAME "Locale"
bool ffPrintLocale(FFLocaleOptions* options);
void ffInitLocaleOptions(FFLocaleOptions* options);
void ffDestroyLocaleOptions(FFLocaleOptions* options);
+7 -8
View File
@@ -4,7 +4,6 @@
#include "detection/localip/localip.h"
#include "modules/localip/localip.h"
#define FF_LOCALIP_DISPLAY_NAME "Local IP"
#pragma GCC diagnostic ignored "-Wsign-conversion"
static int sortIps(const FFLocalIpResult* left, const FFLocalIpResult* right) {
@@ -17,7 +16,7 @@ static void formatKey(const FFLocalIpOptions* options, FFLocalIpResult* ip, uint
ffStrbufSetF(&ip->name, "unknown %u", (unsigned) index);
}
ffStrbufSetF(key, FF_LOCALIP_DISPLAY_NAME " (%s)", ip->name.chars);
ffStrbufSetF(key, "%s (%s)", FF_MODULE_GET_DISPLAY_NAME(LocalIP), ip->name.chars);
} else {
ffStrbufClear(key);
FF_PARSE_FORMAT_STRING_CHECKED(key, &options->moduleArgs.key, ((FFformatarg[]) {
@@ -100,12 +99,12 @@ bool ffPrintLocalIp(FFLocalIpOptions* options) {
const char* error = ffDetectLocalIps(options, &results);
if (error) {
ffPrintError(FF_LOCALIP_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(LocalIP), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
if (results.length == 0) {
ffPrintError(FF_LOCALIP_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Failed to detect any IPs");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(LocalIP), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Failed to detect any IPs");
return false;
}
@@ -114,7 +113,7 @@ bool ffPrintLocalIp(FFLocalIpOptions* options) {
FF_STRBUF_AUTO_DESTROY buffer = ffStrbufCreate();
if (options->showType & FF_LOCALIP_TYPE_COMPACT_BIT) {
ffPrintLogoAndKey(FF_LOCALIP_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(LocalIP), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
FF_LIST_FOR_EACH (FFLocalIpResult, ip, results) {
if (buffer.length) {
@@ -201,7 +200,7 @@ void ffParseLocalIpJsonObject(FFLocalIpOptions* options, yyjson_val* module) {
{},
});
if (error) {
ffPrintError(FF_LOCALIP_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Invalid %s value: %s", unsafe_yyjson_get_str(key), error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(LocalIP), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Invalid %s value: %s", unsafe_yyjson_get_str(key), error);
} else {
options->showType |= FF_LOCALIP_TYPE_IPV6_BIT;
options->ipv6Type = (FFLocalIpIpv6Type) value;
@@ -296,7 +295,7 @@ void ffParseLocalIpJsonObject(FFLocalIpOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_LOCALIP_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(LocalIP), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -422,7 +421,7 @@ void ffDestroyLocalIpOptions(FFLocalIpOptions* options) {
}
FFModuleBaseInfo ffLocalIPModuleInfo = {
.name = FF_LOCALIP_MODULE_NAME,
.name = "LocalIp",
.description = "List local IP addresses (IPv4 or IPv6), MAC addresses, etc",
.displayName = {
.en = "Local IP",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_LOCALIP_MODULE_NAME "LocalIp"
bool ffPrintLocalIp(FFLocalIpOptions* options);
void ffInitLocalIpOptions(FFLocalIpOptions* options);
void ffDestroyLocalIpOptions(FFLocalIpOptions* options);
+3 -3
View File
@@ -4,7 +4,7 @@
#include "options/logo.h"
bool ffPrintLogo([[maybe_unused]] FFLogoOptions* options) {
ffPrintError(FF_LOGO_MODULE_NAME, 0, nullptr, FF_PRINT_TYPE_DEFAULT, "Supported in JSON format only");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Logo), 0, nullptr, FF_PRINT_TYPE_DEFAULT, "Supported in JSON format only");
return false;
}
@@ -16,7 +16,7 @@ void ffParseLogoJsonObject([[maybe_unused]] FFLogoOptions* options, [[maybe_unus
continue;
}
ffPrintError(FF_LOGO_MODULE_NAME, 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Logo), 0, nullptr, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -77,7 +77,7 @@ void ffDestroyLogoOptions([[maybe_unused]] FFLogoOptions* options) {
}
FFModuleBaseInfo ffLogoModuleInfo = {
.name = FF_LOGO_MODULE_NAME,
.name = "Logo",
.description = "Query built-in logo for JSON output",
.displayName = {
.en = "Logo",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_LOGO_MODULE_NAME "Logo"
bool ffPrintLogo(FFLogoOptions* options);
void ffInitLogoOptions(FFLogoOptions* options);
void ffDestroyLogoOptions(FFLogoOptions* options);
+5 -5
View File
@@ -56,7 +56,7 @@ bool ffPrintMedia(FFMediaOptions* options) {
const FFMediaResult* media = ffDetectMedia(false);
if (media->error.length > 0) {
ffPrintError(FF_MEDIA_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", media->error.chars);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Media), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", media->error.chars);
return false;
}
@@ -110,7 +110,7 @@ bool ffPrintMedia(FFMediaOptions* options) {
ffStrbufClear(&artistPretty);
}
ffPrintLogoAndKey(FF_MEDIA_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Media), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
if (artistPretty.length > 0) {
ffStrbufWriteTo(&artistPretty, stdout);
@@ -171,7 +171,7 @@ bool ffPrintMedia(FFMediaOptions* options) {
&options->moduleArgs);
}
}
FF_PRINT_FORMAT_CHECKED(FF_MEDIA_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]){
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Media), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]){
FF_ARG(songPretty, "combined"),
FF_ARG(media->song, "title"),
FF_ARG(media->artist, "artist"),
@@ -201,7 +201,7 @@ void ffParseMediaJsonObject(FFMediaOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_MEDIA_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Media), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -253,7 +253,7 @@ void ffDestroyMediaOptions(FFMediaOptions* options) {
}
FFModuleBaseInfo ffMediaModuleInfo = {
.name = FF_MEDIA_MODULE_NAME,
.name = "Media",
.description = "Print the name of the currently playing song",
.displayName = {
.en = "Media",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_MEDIA_MODULE_NAME "Media"
bool ffPrintMedia(FFMediaOptions* options);
void ffInitMediaOptions(FFMediaOptions* options);
void ffDestroyMediaOptions(FFMediaOptions* options);
+5 -5
View File
@@ -11,7 +11,7 @@ bool ffPrintMemory(FFMemoryOptions* options) {
const char* error = ffDetectMemory(&storage);
if (error) {
ffPrintError(FF_MEMORY_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Memory), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
@@ -27,7 +27,7 @@ bool ffPrintMemory(FFMemoryOptions* options) {
FFPercentageTypeFlags percentType = options->percent.type == 0 ? instance.config.display.percentType : options->percent.type;
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_MEMORY_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Memory), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
if (storage.bytesTotal == 0) {
puts("Disabled");
} else {
@@ -59,7 +59,7 @@ bool ffPrintMemory(FFMemoryOptions* options) {
ffPercentAppendBar(&percentageBar, percentage, options->percent, &options->moduleArgs);
}
FF_PRINT_FORMAT_CHECKED(FF_MEMORY_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Memory), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(usedPretty, "used"),
FF_ARG(totalPretty, "total"),
FF_ARG(percentageNum, "percentage"),
@@ -82,7 +82,7 @@ void ffParseMemoryJsonObject(FFMemoryOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_MEMORY_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Memory), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -118,7 +118,7 @@ void ffDestroyMemoryOptions(FFMemoryOptions* options) {
}
FFModuleBaseInfo ffMemoryModuleInfo = {
.name = FF_MEMORY_MODULE_NAME,
.name = "Memory",
.description = "Print system memory usage information",
.displayName = {
.en = "Memory",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_MEMORY_MODULE_NAME "Memory"
bool ffPrintMemory(FFMemoryOptions* options);
void ffInitMemoryOptions(FFMemoryOptions* options);
void ffDestroyMemoryOptions(FFMemoryOptions* options);
+4 -4
View File
@@ -10,7 +10,7 @@ bool ffPrintMonitor(FFMonitorOptions* options) {
const FFDisplayServerResult* result = ffConnectDisplayServer();
if (!result->displays.length) {
ffPrintError(FF_MONITOR_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No display detected");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Monitor), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No display detected");
return false;
}
@@ -23,7 +23,7 @@ bool ffPrintMonitor(FFMonitorOptions* options) {
ffStrbufClear(&key);
if (options->moduleArgs.key.length == 0) {
ffStrbufAppendS(&key, FF_MONITOR_MODULE_NAME);
ffStrbufAppendS(&key, FF_MODULE_GET_DISPLAY_NAME(Monitor));
if (display->name.length > 0) {
ffStrbufAppendF(&key, " (%s)", display->name.chars);
}
@@ -82,7 +82,7 @@ void ffParseMonitorJsonObject(FFMonitorOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_MONITOR_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Monitor), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -104,7 +104,7 @@ void ffDestroyMonitorOptions(FFMonitorOptions* options) {
}
FFModuleBaseInfo ffMonitorModuleInfo = {
.name = FF_MONITOR_MODULE_NAME,
.name = "Monitor",
.description = "Same as Display module, but with a different default output format",
.displayName = {
.en = "Monitor",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_MONITOR_MODULE_NAME "Monitor"
bool ffPrintMonitor(FFMonitorOptions* options);
void ffInitMonitorOptions(FFMonitorOptions* options);
void ffDestroyMonitorOptions(FFMonitorOptions* options);
+7 -7
View File
@@ -7,10 +7,10 @@
static void printDevice(FFMouseOptions* options, const FFMouseDevice* device, uint8_t index) {
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_MOUSE_MODULE_NAME, index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Mouse), index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffStrbufPutTo(&device->name, stdout);
} else {
FF_PRINT_FORMAT_CHECKED(FF_MOUSE_MODULE_NAME, index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Mouse), index, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(device->name, "name"),
FF_ARG(device->serial, "serial"),
}));
@@ -23,12 +23,12 @@ bool ffPrintMouse(FFMouseOptions* options) {
const char* error = ffDetectMouse(&result);
if (error) {
ffPrintError(FF_MOUSE_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Mouse), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
if (!result.length) {
ffPrintError(FF_MOUSE_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No devices detected");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Mouse), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No devices detected");
return false;
}
@@ -49,7 +49,7 @@ bool ffPrintMouse(FFMouseOptions* options) {
bool ret = true;
if (!filtered.length) {
ffPrintError(FF_MOUSE_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "All devices are ignored");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Mouse), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "All devices are ignored");
ret = false;
} else {
uint8_t index = 0;
@@ -87,7 +87,7 @@ void ffParseMouseJsonObject(FFMouseOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_MOUSE_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Mouse), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -152,7 +152,7 @@ void ffDestroyMouseOptions(FFMouseOptions* options) {
}
FFModuleBaseInfo ffMouseModuleInfo = {
.name = FF_MOUSE_MODULE_NAME,
.name = "Mouse",
.description = "List connected mice",
.displayName = {
.en = "Mouse",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_MOUSE_MODULE_NAME "Mouse"
bool ffPrintMouse(FFMouseOptions* options);
void ffInitMouseOptions(FFMouseOptions* options);
void ffDestroyMouseOptions(FFMouseOptions* options);
+4 -6
View File
@@ -5,8 +5,6 @@
#include "detection/netio/netio.h"
#include "modules/netio/netio.h"
#define FF_NETIO_DISPLAY_NAME "Network IO"
static int sortInfs(const FFNetIOResult* left, const FFNetIOResult* right) {
return ffStrbufComp(&left->name, &right->name);
}
@@ -17,7 +15,7 @@ static void formatKey(const FFNetIOOptions* options, FFNetIOResult* inf, uint32_
ffStrbufSetF(&inf->name, "unknown %u", (unsigned) index);
}
ffStrbufSetF(key, FF_NETIO_DISPLAY_NAME " (%s)", inf->name.chars);
ffStrbufSetF(key, "%s (%s)", FF_MODULE_GET_DISPLAY_NAME(NetIO), inf->name.chars);
} else {
ffStrbufClear(key);
FF_PARSE_FORMAT_STRING_CHECKED(key, &options->moduleArgs.key, ((FFformatarg[]) {
@@ -33,7 +31,7 @@ bool ffPrintNetIO(FFNetIOOptions* options) {
const char* error = ffDetectNetIO(&result, options);
if (error) {
ffPrintError(FF_NETIO_DISPLAY_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(NetIO), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
@@ -131,7 +129,7 @@ void ffParseNetIOJsonObject(FFNetIOOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_NETIO_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(NetIO), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -199,7 +197,7 @@ void ffDestroyNetIOOptions(FFNetIOOptions* options) {
}
FFModuleBaseInfo ffNetIOModuleInfo = {
.name = FF_NETIO_MODULE_NAME,
.name = "NetIO",
.description = "Print network I/O throughput",
.displayName = {
.en = "Network I/O",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_NETIO_MODULE_NAME "NetIO"
void ffPrepareNetIO(FFNetIOOptions* options);
bool ffPrintNetIO(FFNetIOOptions* options);
+5 -5
View File
@@ -9,15 +9,15 @@ bool ffPrintOpenCL(FFOpenCLOptions* options) {
FFOpenCLResult* result = ffDetectOpenCL();
if (result->error != nullptr) {
ffPrintError(FF_OPENCL_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", result->error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(OpenCL), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", result->error);
return false;
}
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_OPENCL_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(OpenCL), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffStrbufPutTo(&result->version, stdout);
} else {
FF_PRINT_FORMAT_CHECKED(FF_OPENCL_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(OpenCL), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(result->version, "version"),
FF_ARG(result->name, "name"),
FF_ARG(result->vendor, "vendor"),
@@ -35,7 +35,7 @@ void ffParseOpenCLJsonObject(FFOpenCLOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_OPENCL_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(OpenCL), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -120,7 +120,7 @@ void ffDestroyOpenCLOptions(FFOpenCLOptions* options) {
}
FFModuleBaseInfo ffOpenCLModuleInfo = {
.name = FF_OPENCL_MODULE_NAME,
.name = "OpenCL",
.description = "Print the highest OpenCL version supported by the GPU",
.displayName = {
.en = "OpenCL",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_OPENCL_MODULE_NAME "OpenCL"
bool ffPrintOpenCL(FFOpenCLOptions* options);
void ffInitOpenCLOptions(FFOpenCLOptions* options);
void ffDestroyOpenCLOptions(FFOpenCLOptions* options);
+6 -6
View File
@@ -15,13 +15,13 @@ bool ffPrintOpenGL(FFOpenGLOptions* options) {
const char* error = ffDetectOpenGL(options, &result);
if (error) {
ffPrintError(FF_OPENGL_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(OpenGL), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
} else {
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_OPENGL_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(OpenGL), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
puts(result.version.chars);
} else {
FF_PRINT_FORMAT_CHECKED(FF_OPENGL_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(OpenGL), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]) {
FF_ARG(result.version, "version"),
FF_ARG(result.renderer, "renderer"),
FF_ARG(result.vendor, "vendor"),
@@ -58,14 +58,14 @@ void ffParseOpenGLJsonObject(FFOpenGLOptions* options, yyjson_val* module) {
{},
});
if (error) {
ffPrintError(FF_OPENGL_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Invalid %s value: %s", unsafe_yyjson_get_str(key), error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(OpenGL), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Invalid %s value: %s", unsafe_yyjson_get_str(key), error);
} else {
options->library = (FFOpenGLLibrary) value;
}
continue;
}
ffPrintError(FF_OPENGL_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(OpenGL), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -127,7 +127,7 @@ void ffDestroyOpenGLOptions(FFOpenGLOptions* options) {
}
FFModuleBaseInfo ffOpenGLModuleInfo = {
.name = FF_OPENGL_MODULE_NAME,
.name = "OpenGL",
.description = "Print the highest OpenGL version supported by the GPU",
.displayName = {
.en = "OpenGL",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_OPENGL_MODULE_NAME "OpenGL"
bool ffPrintOpenGL(FFOpenGLOptions* options);
void ffInitOpenGLOptions(FFOpenGLOptions* options);
void ffDestroyOpenGLOptions(FFOpenGLOptions* options);
+4 -4
View File
@@ -50,14 +50,14 @@ bool ffPrintOS(FFOSOptions* options) {
const FFOSResult* os = ffDetectOS();
if (os->name.length == 0 && os->prettyName.length == 0 && os->id.length == 0) {
ffPrintError(FF_OS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Could not detect OS");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(OS), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Could not detect OS");
return false;
}
FF_STRBUF_AUTO_DESTROY key = ffStrbufCreate();
if (options->moduleArgs.key.length == 0) {
ffStrbufSetStatic(&key, FF_OS_MODULE_NAME);
ffStrbufSetStatic(&key, FF_MODULE_GET_DISPLAY_NAME(OS));
} else {
FF_PARSE_FORMAT_STRING_CHECKED(&key, &options->moduleArgs.key, ((FFformatarg[]) {
FF_ARG(instance.state.platform.sysinfo.name, "sysname"),
@@ -112,7 +112,7 @@ void ffParseOSJsonObject(FFOSOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_OS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(OS), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -172,7 +172,7 @@ void ffDestroyOSOptions(FFOSOptions* options) {
}
FFModuleBaseInfo ffOSModuleInfo = {
.name = FF_OS_MODULE_NAME,
.name = "OS",
.description = "Print the OS or Linux distribution name and version",
.displayName = {
.en = "OS",
-2
View File
@@ -2,8 +2,6 @@
#include "option.h"
#define FF_OS_MODULE_NAME "OS"
bool ffPrintOS(FFOSOptions* options);
void ffInitOSOptions(FFOSOptions* options);
void ffDestroyOSOptions(FFOSOptions* options);
+8 -8
View File
@@ -11,12 +11,12 @@ bool ffPrintPackages(FFPackagesOptions* options) {
const char* error = ffDetectPackages(&counts, options);
if (error) {
ffPrintError(FF_PACKAGES_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Packages), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error);
return false;
}
if (counts.all == 0) {
ffPrintError(FF_PACKAGES_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No packages from known package managers found");
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Packages), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No packages from known package managers found");
return false;
}
@@ -29,7 +29,7 @@ bool ffPrintPackages(FFPackagesOptions* options) {
uint32_t scoopAll = counts.scoopUser + counts.scoopGlobal;
if (options->moduleArgs.outputFormat.length == 0) {
ffPrintLogoAndKey(FF_PACKAGES_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
ffPrintLogoAndKey(FF_MODULE_GET_DISPLAY_NAME(Packages), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
FF_STRBUF_AUTO_DESTROY output = ffStrbufCreate();
@@ -141,7 +141,7 @@ bool ffPrintPackages(FFPackagesOptions* options) {
output.chars[output.length - 1] = '\n';
ffStrbufWriteTo(&output, stdout);
} else {
FF_PRINT_FORMAT_CHECKED(FF_PACKAGES_MODULE_NAME,
FF_PRINT_FORMAT_CHECKED(FF_MODULE_GET_DISPLAY_NAME(Packages),
0,
&options->moduleArgs,
FF_PRINT_TYPE_DEFAULT,
@@ -219,7 +219,7 @@ void ffParsePackagesJsonObject(FFPackagesOptions* options, yyjson_val* module) {
#if !FF_PACKAGES_REMOVE_DISABLED
if (unsafe_yyjson_equals_str(key, "disabled")) {
if (!yyjson_is_null(val) && !yyjson_is_arr(val)) {
ffPrintError(FF_PACKAGES_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Invalid JSON value for %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Packages), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Invalid JSON value for %s", unsafe_yyjson_get_str(key));
continue;
}
@@ -230,7 +230,7 @@ void ffParsePackagesJsonObject(FFPackagesOptions* options, yyjson_val* module) {
size_t flagIdx, flagMax;
yyjson_arr_foreach (val, flagIdx, flagMax, flagObj) {
if (!yyjson_is_str(flagObj)) {
ffPrintError(FF_PACKAGES_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Invalid JSON value for %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Packages), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Invalid JSON value for %s", unsafe_yyjson_get_str(key));
continue;
}
const char* flag = unsafe_yyjson_get_str(flagObj);
@@ -366,7 +366,7 @@ void ffParsePackagesJsonObject(FFPackagesOptions* options, yyjson_val* module) {
continue;
}
ffPrintError(FF_PACKAGES_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
ffPrintError(FF_MODULE_GET_DISPLAY_NAME(Packages), 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
}
}
@@ -510,7 +510,7 @@ void ffDestroyPackagesOptions(FFPackagesOptions* options) {
}
FFModuleBaseInfo ffPackagesModuleInfo = {
.name = FF_PACKAGES_MODULE_NAME,
.name = "Packages",
.description = "List installed package managers and count of installed packages",
.displayName = {
.en = "Packages",

Some files were not shown because too many files have changed in this diff Show More