Global: init support for JSON config file migration (WIP)

This commit is contained in:
李通洲
2023-10-23 13:39:07 +08:00
parent 44632e9bf6
commit ec87790e4f
65 changed files with 716 additions and 92 deletions
+35 -4
View File
@@ -1,6 +1,7 @@
#include "commandoption.h"
#include "common/printing.h"
#include "common/time.h"
#include "common/jsonconfig.h"
#include "fastfetch_datatext.h"
#include "modules/modules.h"
#include "util/stringUtils.h"
@@ -8,7 +9,27 @@
#include <ctype.h>
#include <inttypes.h>
static inline yyjson_mut_val* genJson(FFModuleBaseInfo* baseInfo)
static inline yyjson_mut_val* genJsonConfig(FFModuleBaseInfo* baseInfo)
{
yyjson_mut_doc* doc = instance.state.migrateConfigDoc;
if (__builtin_expect(!doc, true)) return NULL;
yyjson_mut_val* modules = yyjson_mut_obj_get(doc->root, "modules");
if (!modules)
modules = yyjson_mut_obj_add_arr(doc, doc->root, "modules");
yyjson_mut_val* module = yyjson_mut_arr_add_obj(doc, modules);
FF_STRBUF_AUTO_DESTROY type = ffStrbufCreateS(baseInfo->name);
ffStrbufLowerCase(&type);
yyjson_mut_obj_add_strbuf(doc, module, "type", &type);
if (baseInfo->generateJsonConfig)
baseInfo->generateJsonConfig(baseInfo, doc, module);
return module;
}
static inline yyjson_mut_val* genJsonResult(FFModuleBaseInfo* baseInfo)
{
yyjson_mut_doc* doc = instance.state.resultDoc;
if (__builtin_expect(!doc, true)) return NULL;
@@ -31,7 +52,7 @@ bool ffParseModuleCommand(const char* type)
FFModuleBaseInfo* baseInfo = *modules;
if (ffStrEqualsIgnCase(type, baseInfo->name))
{
if (!genJson(baseInfo))
if (!genJsonConfig(baseInfo) && !genJsonResult(baseInfo))
baseInfo->printModule(baseInfo);
return true;
}
@@ -88,7 +109,7 @@ static void parseStructureCommand(const char* line, FFlist* customValues)
if (customValue->printKey)
ffStrbufAppend(&options.moduleArgs.key, &customValue->key);
ffStrbufAppend(&options.moduleArgs.outputFormat, &customValue->value);
ffPrintCustom(&options);
if (!genJsonConfig((FFModuleBaseInfo*) &options)) ffPrintCustom(&options);
return;
}
}
@@ -135,9 +156,19 @@ void ffPrintCommandOption(FFdata* data)
}
#if defined(_WIN32)
if (!instance.config.noBuffer) fflush(stdout);
if (!resultDoc && !instance.config.noBuffer) fflush(stdout);
#endif
startIndex = colonIndex + 1;
}
}
void ffMigrateCommandOptionToJsonc(FFdata* data)
{
//If we don't have a custom structure, use the default one
if(data->structure.length == 0)
ffStrbufAppendS(&data->structure, FASTFETCH_DATATEXT_STRUCTURE);
instance.config.stat = false;
ffPrintCommandOption(data);
yyjson_mut_write_fp(stdout, instance.state.migrateConfigDoc, YYJSON_WRITE_INF_AND_NAN_AS_NULL | YYJSON_WRITE_PRETTY_TWO_SPACES, NULL, NULL);
}
+1
View File
@@ -24,5 +24,6 @@ bool ffParseModuleCommand(const char* type);
bool ffParseModuleOptions(const char* key, const char* value);
void ffPrepareCommandOption(FFdata* data);
void ffPrintCommandOption(FFdata* data);
void ffMigrateCommandOptionToJsonc(FFdata* data);
#endif
+1
View File
@@ -381,6 +381,7 @@ static void destroyState(void)
ffPlatformDestroy(&instance.state.platform);
yyjson_doc_free(instance.state.configDoc);
yyjson_mut_doc_free(instance.state.resultDoc);
yyjson_mut_doc_free(instance.state.migrateConfigDoc);
}
void ffDestroyInstance(void)
+12
View File
@@ -35,6 +35,18 @@ bool ffJsonConfigParseModuleArgs(const char* key, yyjson_val* val, FFModuleArgs*
return false;
}
void ffJsonConfigGenerateModuleArgsConfig(yyjson_mut_doc* doc, yyjson_mut_val* module, FFModuleArgs* defaultModuleArgs, FFModuleArgs* moduleArgs)
{
if (!ffStrbufEqual(&defaultModuleArgs->key, &moduleArgs->key))
yyjson_mut_obj_add_strbuf(doc, module, "key", &moduleArgs->key);
if (!ffStrbufEqual(&defaultModuleArgs->outputFormat, &moduleArgs->outputFormat))
yyjson_mut_obj_add_strbuf(doc, module, "format", &moduleArgs->outputFormat);
if (!ffStrbufEqual(&defaultModuleArgs->keyColor, &moduleArgs->keyColor))
yyjson_mut_obj_add_strbuf(doc, module, "keyColor", &moduleArgs->keyColor);
if (moduleArgs->keyWidth != defaultModuleArgs->keyWidth)
yyjson_mut_obj_add_uint(doc, module, "keyWidth", moduleArgs->keyWidth);
}
const char* ffJsonConfigParseEnum(yyjson_val* val, int* result, FFKeyValuePair pairs[])
{
if (yyjson_is_int(val))
+1
View File
@@ -8,6 +8,7 @@ void ffPrintJsonConfig(bool prepare);
const char* ffParseGeneralJsonConfig(void);
const char* ffParseDisplayJsonConfig(void);
const char* ffParseLibraryJsonConfig(void);
void ffJsonConfigGenerateModuleArgsConfig(yyjson_mut_doc* doc, yyjson_mut_val* module, FFModuleArgs* defaultModuleArgs, FFModuleArgs* moduleArgs);
yyjson_api_inline bool yyjson_mut_obj_add_strbuf(yyjson_mut_doc *doc,
yyjson_mut_val *obj,
+4 -1
View File
@@ -19,6 +19,7 @@ typedef struct FFModuleBaseInfo
void (*printModule)(void* options);
void (*generateJsonResult)(void* options, struct yyjson_mut_doc* doc, struct yyjson_mut_val* module);
void (*printHelpFormat)(void);
void (*generateJsonConfig)(void* options, struct yyjson_mut_doc* doc, struct yyjson_mut_val* obj);
} FFModuleBaseInfo;
static inline void ffOptionInitModuleBaseInfo(
@@ -28,7 +29,8 @@ static inline void ffOptionInitModuleBaseInfo(
void* parseJsonObject, // void (*const parseJsonObject)(void* options, yyjson_val *module)
void* printModule, // void (*const printModule)(void* options)
void* generateJsonResult, // void (*const generateJsonResult)(void* options, yyjson_mut_doc* doc, yyjson_mut_val* obj)
void (*printHelpFormat)(void)
void (*printHelpFormat)(void),
void* generateJsonConfig // void (*const generateJsonConfig)(void* options, yyjson_mut_doc* doc, yyjson_mut_val* obj)
)
{
baseInfo->name = name;
@@ -37,6 +39,7 @@ static inline void ffOptionInitModuleBaseInfo(
baseInfo->printModule = (__typeof__(baseInfo->printModule)) printModule;
baseInfo->generateJsonResult = (__typeof__(baseInfo->generateJsonResult)) generateJsonResult;
baseInfo->printHelpFormat = printHelpFormat;
baseInfo->generateJsonConfig = (__typeof__(baseInfo->generateJsonConfig)) generateJsonConfig;
}
typedef struct FFModuleArgs
+59 -30
View File
@@ -481,6 +481,26 @@ static void parseOption(FFdata* data, const char* key, const char* value)
generateConfigFile(false, value);
else if(ffStrEqualsIgnCase(key, "--gen-config-force"))
generateConfigFile(true, value);
else if (ffStrEqualsIgnCase(key, "--migrate-config"))
{
yyjson_mut_doc_free(instance.state.migrateConfigDoc);
if (ffOptionParseBoolean(value))
{
if (instance.state.configDoc)
{
fputs("Error: existing jsonc config file detected. Exiting\n", stderr);
exit(477);
}
yyjson_mut_doc* doc = instance.state.migrateConfigDoc = yyjson_mut_doc_new(NULL);
yyjson_mut_val* root = yyjson_mut_obj(doc);
yyjson_mut_doc_set_root(doc, root);
yyjson_mut_obj_add_str(doc, root, "$schema", "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json");
}
else
instance.state.migrateConfigDoc = NULL;
}
else if(ffStrEqualsIgnCase(key, "--thread") || ffStrEqualsIgnCase(key, "--multithreading"))
instance.config.multithreading = ffOptionParseBoolean(value);
else if(ffStrEqualsIgnCase(key, "--stat"))
@@ -719,20 +739,22 @@ error:
static void parseConfigFiles(FFdata* data)
{
for(uint32_t i = instance.state.platform.configDirs.length; i > 0; --i)
if (__builtin_expect(!instance.state.migrateConfigDoc, true))
{
FFstrbuf* dir = ffListGet(&instance.state.platform.configDirs, i - 1);
uint32_t dirLength = dir->length;
for (uint32_t i = instance.state.platform.configDirs.length; i > 0; --i)
{
FFstrbuf* dir = ffListGet(&instance.state.platform.configDirs, i - 1);
uint32_t dirLength = dir->length;
ffStrbufAppendS(dir, "fastfetch/config.jsonc");
bool success = parseJsoncFile(dir->chars);
ffStrbufSubstrBefore(dir, dirLength);
if (success) return;
ffStrbufAppendS(dir, "fastfetch/config.jsonc");
bool success = parseJsoncFile(dir->chars);
ffStrbufSubstrBefore(dir, dirLength);
if (success) return;
}
}
for(uint32_t i = instance.state.platform.configDirs.length; i > 0; --i)
for (uint32_t i = instance.state.platform.configDirs.length; i > 0; --i)
{
if(!data->loadUserConfig)
if (!data->loadUserConfig)
return;
FFstrbuf* dir = ffListGet(&instance.state.platform.configDirs, i - 1);
@@ -773,20 +795,8 @@ static void parseArguments(FFdata* data, int argc, const char** argv)
}
}
int main(int argc, const char** argv)
static void ffRun(FFdata* data)
{
ffInitInstance();
//Data stores things only needed for the configuration of fastfetch
FFdata data;
ffStrbufInit(&data.structure);
ffListInit(&data.customValues, sizeof(FFCustomValue));
data.loadUserConfig = true;
if(!getenv("NO_CONFIG"))
parseConfigFiles(&data);
parseArguments(&data, argc, argv);
if (instance.state.configDoc)
{
const char* error = NULL;
@@ -803,12 +813,12 @@ int main(int argc, const char** argv)
}
}
const bool useJsonConfig = data.structure.length == 0 && instance.state.configDoc;
const bool useJsonConfig = data->structure.length == 0 && instance.state.configDoc;
if(useJsonConfig)
if (useJsonConfig)
ffPrintJsonConfig(true /* prepare */);
else
ffPrepareCommandOption(&data);
ffPrepareCommandOption(data);
ffStart();
@@ -819,14 +829,33 @@ int main(int argc, const char** argv)
if (useJsonConfig)
ffPrintJsonConfig(false);
else
ffPrintCommandOption(&data);
ffPrintCommandOption(data);
if (instance.state.resultDoc)
{
yyjson_mut_write_fp(stdout, instance.state.resultDoc, YYJSON_WRITE_INF_AND_NAN_AS_NULL | YYJSON_WRITE_PRETTY_TWO_SPACES, NULL, NULL);
}
else
ffFinish();
}
ffFinish();
int main(int argc, const char** argv)
{
ffInitInstance();
//Data stores things only needed for the configuration of fastfetch
FFdata data = {
.structure = ffStrbufCreate(),
.customValues = ffListCreate(sizeof(FFCustomValue)),
.loadUserConfig = true,
};
if(!getenv("NO_CONFIG"))
parseConfigFiles(&data);
parseArguments(&data, argc, argv);
if (__builtin_expect(!instance.state.migrateConfigDoc, true))
ffRun(&data);
else
ffMigrateCommandOptionToJsonc(&data); // Migrate
ffStrbufDestroy(&data.structure);
FF_LIST_FOR_EACH(FFCustomValue, customValue, data.customValues)
+1
View File
@@ -176,6 +176,7 @@ typedef struct FFstate
FFPlatform platform;
yyjson_doc* configDoc;
yyjson_mut_doc* resultDoc;
yyjson_mut_doc* migrateConfigDoc;
} FFstate;
typedef struct FFinstance
+26 -1
View File
@@ -156,6 +156,22 @@ void ffParseBatteryJsonObject(FFBatteryOptions* options, yyjson_val* module)
}
}
void ffGenerateBatteryJsonConfig(FFBatteryOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
{
__attribute__((__cleanup__(ffDestroyBatteryOptions))) FFBatteryOptions defaultOptions;
ffInitBatteryOptions(&defaultOptions);
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
#ifdef __linux__
if (!ffStrbufEquals(&defaultOptions.dir, &options->dir))
yyjson_mut_obj_add_strbuf(doc, module, "dir", &options->dir);
#endif
if (options->temp != defaultOptions.temp)
yyjson_mut_obj_add_bool(doc, module, "temp", options->temp);
}
void ffGenerateBatteryJsonResult(FFBatteryOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
{
FF_LIST_AUTO_DESTROY results = ffListCreate(sizeof(FFBatteryResult));
@@ -202,7 +218,16 @@ void ffPrintBatteryHelpFormat(void)
void ffInitBatteryOptions(FFBatteryOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_BATTERY_MODULE_NAME, ffParseBatteryCommandOptions, ffParseBatteryJsonObject, ffPrintBattery, ffGenerateBatteryJsonResult, ffPrintBatteryHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_BATTERY_MODULE_NAME,
ffParseBatteryCommandOptions,
ffParseBatteryJsonObject,
ffPrintBattery,
ffGenerateBatteryJsonResult,
ffPrintBatteryHelpFormat,
ffGenerateBatteryJsonConfig
);
ffOptionInitModuleArg(&options->moduleArgs);
options->temp = false;
+18 -1
View File
@@ -80,6 +80,14 @@ void ffParseBiosJsonObject(FFBiosOptions* options, yyjson_val* module)
}
}
void ffGenerateBiosJsonConfig(FFBiosOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
{
__attribute__((__cleanup__(ffDestroyBiosOptions))) FFBiosOptions defaultOptions;
ffInitBiosOptions(&defaultOptions);
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
}
void ffGenerateBiosJsonResult(FF_MAYBE_UNUSED FFBiosOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
{
FFBiosResult bios;
@@ -127,7 +135,16 @@ void ffPrintBiosHelpFormat(void)
void ffInitBiosOptions(FFBiosOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_BIOS_MODULE_NAME, ffParseBiosCommandOptions, ffParseBiosJsonObject, ffPrintBios, ffGenerateBiosJsonResult, ffPrintBiosHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_BIOS_MODULE_NAME,
ffParseBiosCommandOptions,
ffParseBiosJsonObject,
ffPrintBios,
ffGenerateBiosJsonResult,
ffPrintBiosHelpFormat,
ffGenerateBiosJsonConfig
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -157,7 +157,16 @@ void ffPrintBluetoothHelpFormat(void)
void ffInitBluetoothOptions(FFBluetoothOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_BLUETOOTH_MODULE_NAME, ffParseBluetoothCommandOptions, ffParseBluetoothJsonObject, ffPrintBluetooth, ffGenerateBluetoothJsonResult, ffPrintBluetoothHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_BLUETOOTH_MODULE_NAME,
ffParseBluetoothCommandOptions,
ffParseBluetoothJsonObject,
ffPrintBluetooth,
ffGenerateBluetoothJsonResult,
ffPrintBluetoothHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
options->showDisconnected = false;
}
+10 -1
View File
@@ -119,7 +119,16 @@ void ffPrintBoardHelpFormat(void)
void ffInitBoardOptions(FFBoardOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_BOARD_MODULE_NAME, ffParseBoardCommandOptions, ffParseBoardJsonObject, ffPrintBoard, ffGenerateBoardJsonResult, ffPrintBoardHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_BOARD_MODULE_NAME,
ffParseBoardCommandOptions,
ffParseBoardJsonObject,
ffPrintBoard,
ffGenerateBoardJsonResult,
ffPrintBoardHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -20,7 +20,16 @@ void ffParseBreakJsonObject(FF_MAYBE_UNUSED FFBreakOptions* options, FF_MAYBE_UN
void ffInitBreakOptions(FF_MAYBE_UNUSED FFBreakOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_BREAK_MODULE_NAME, ffParseBreakCommandOptions, ffParseBreakJsonObject, ffPrintBreak, NULL, NULL);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_BREAK_MODULE_NAME,
ffParseBreakCommandOptions,
ffParseBreakJsonObject,
ffPrintBreak,
NULL,
NULL,
NULL
);
}
void ffDestroyBreakOptions(FF_MAYBE_UNUSED FFBreakOptions* options)
+10 -1
View File
@@ -172,7 +172,16 @@ void ffPrintBrightnessHelpFormat(void)
void ffInitBrightnessOptions(FFBrightnessOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_BRIGHTNESS_MODULE_NAME, ffParseBrightnessCommandOptions, ffParseBrightnessJsonObject, ffPrintBrightness, ffGenerateBrightnessJsonResult, ffPrintBrightnessHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_BRIGHTNESS_MODULE_NAME,
ffParseBrightnessCommandOptions,
ffParseBrightnessJsonObject,
ffPrintBrightness,
ffGenerateBrightnessJsonResult,
ffPrintBrightnessHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
options->ddcciSleep = 10;
+10 -1
View File
@@ -120,7 +120,16 @@ void ffPrintChassisHelpFormat(void)
void ffInitChassisOptions(FFChassisOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_CHASSIS_MODULE_NAME, ffParseChassisCommandOptions, ffParseChassisJsonObject, ffPrintChassis, ffGenerateChassisJsonResult, ffPrintChassisHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_CHASSIS_MODULE_NAME,
ffParseChassisCommandOptions,
ffParseChassisJsonObject,
ffPrintChassis,
ffGenerateChassisJsonResult,
ffPrintChassisHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -129,7 +129,16 @@ void ffParseColorsJsonObject(FFColorsOptions* options, yyjson_val* module)
void ffInitColorsOptions(FFColorsOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_COLORS_MODULE_NAME, ffParseColorsCommandOptions, ffParseColorsJsonObject, ffPrintColors, NULL, NULL);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_COLORS_MODULE_NAME,
ffParseColorsCommandOptions,
ffParseColorsJsonObject,
ffPrintColors,
NULL,
NULL,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
ffStrbufSetStatic(&options->moduleArgs.key, " ");
options->symbol = FF_COLORS_SYMBOL_BLOCK;
+10 -1
View File
@@ -134,7 +134,16 @@ void ffPrintCommandHelpFormat(void)
void ffInitCommandOptions(FFCommandOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_COMMAND_MODULE_NAME, ffParseCommandCommandOptions, ffParseCommandJsonObject, ffPrintCommand, ffGenerateCommandJsonResult, ffPrintCommandHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_COMMAND_MODULE_NAME,
ffParseCommandCommandOptions,
ffParseCommandJsonObject,
ffPrintCommand,
ffGenerateCommandJsonResult,
ffPrintCommandHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
ffStrbufInitStatic(&options->shell,
+10 -1
View File
@@ -185,7 +185,16 @@ void ffPrintCPUHelpFormat(void)
void ffInitCPUOptions(FFCPUOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_CPU_MODULE_NAME, ffParseCPUCommandOptions, ffParseCPUJsonObject, ffPrintCPU, ffGenerateCPUJsonResult, ffPrintCPUHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_CPU_MODULE_NAME,
ffParseCPUCommandOptions,
ffParseCPUJsonObject,
ffPrintCPU,
ffGenerateCPUJsonResult,
ffPrintCPUHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
options->temp = false;
options->freqNdigits = 2;
+10 -1
View File
@@ -154,7 +154,16 @@ void ffPrintCPUUsageHelpFormat(void)
void ffInitCPUUsageOptions(FFCPUUsageOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_CPUUSAGE_MODULE_NAME, ffParseCPUUsageCommandOptions, ffParseCPUUsageJsonObject, ffPrintCPUUsage, ffGenerateCPUUsageJsonResult, ffPrintCPUUsageHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_CPUUSAGE_MODULE_NAME,
ffParseCPUUsageCommandOptions,
ffParseCPUUsageJsonObject,
ffPrintCPUUsage,
ffGenerateCPUUsageJsonResult,
ffPrintCPUUsageHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -111,7 +111,16 @@ void ffPrintCursorHelpFormat(void)
void ffInitCursorOptions(FFCursorOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_CURSOR_MODULE_NAME, ffParseCursorCommandOptions, ffParseCursorJsonObject, ffPrintCursor, ffGenerateCursorJsonResult, ffPrintCursorHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_CURSOR_MODULE_NAME,
ffParseCursorCommandOptions,
ffParseCursorJsonObject,
ffPrintCursor,
ffGenerateCursorJsonResult,
ffPrintCursorHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+18 -1
View File
@@ -27,6 +27,14 @@ bool ffParseCustomCommandOptions(FFCustomOptions* options, const char* key, cons
return false;
}
void ffGenerateCustomJsonConfig(FFCustomOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
{
__attribute__((__cleanup__(ffDestroyCustomOptions))) FFCustomOptions defaultOptions;
ffInitCustomOptions(&defaultOptions);
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
}
void ffParseCustomJsonObject(FFCustomOptions* options, yyjson_val* module)
{
yyjson_val *key_, *val;
@@ -46,7 +54,16 @@ void ffParseCustomJsonObject(FFCustomOptions* options, yyjson_val* module)
void ffInitCustomOptions(FFCustomOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_CUSTOM_MODULE_NAME, ffParseCustomCommandOptions, ffParseCustomJsonObject, ffPrintCustom, NULL, NULL);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_CUSTOM_MODULE_NAME,
ffParseCustomCommandOptions,
ffParseCustomJsonObject,
ffPrintCustom,
NULL,
NULL,
ffGenerateCustomJsonConfig
);
ffOptionInitModuleArg(&options->moduleArgs);
ffStrbufSetStatic(&options->moduleArgs.key, " ");
}
+10 -1
View File
@@ -201,7 +201,16 @@ void ffPrintDateTimeHelpFormat(void)
void ffInitDateTimeOptions(FFDateTimeOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_DATETIME_MODULE_NAME, ffParseDateTimeCommandOptions, ffParseDateTimeJsonObject, ffPrintDateTime, ffGenerateDateTimeJsonResult, ffPrintDateTimeHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_DATETIME_MODULE_NAME,
ffParseDateTimeCommandOptions,
ffParseDateTimeJsonObject,
ffPrintDateTime,
ffGenerateDateTimeJsonResult,
ffPrintDateTimeHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -94,7 +94,16 @@ void ffPrintDEHelpFormat(void)
void ffInitDEOptions(FFDEOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_DE_MODULE_NAME, ffParseDECommandOptions, ffParseDEJsonObject, ffPrintDE, ffGenerateDEJsonResult, ffPrintDEHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_DE_MODULE_NAME,
ffParseDECommandOptions,
ffParseDEJsonObject,
ffPrintDE,
ffGenerateDEJsonResult,
ffPrintDEHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -428,7 +428,16 @@ void ffPrintDiskHelpFormat(void)
void ffInitDiskOptions(FFDiskOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_DISK_MODULE_NAME, ffParseDiskCommandOptions, ffParseDiskJsonObject, ffPrintDisk, ffGenerateDiskJsonResult, ffPrintDiskHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_DISK_MODULE_NAME,
ffParseDiskCommandOptions,
ffParseDiskJsonObject,
ffPrintDisk,
ffGenerateDiskJsonResult,
ffPrintDiskHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
ffStrbufInit(&options->folders);
+10 -1
View File
@@ -215,7 +215,16 @@ void ffPrintDiskIOHelpFormat(void)
void ffInitDiskIOOptions(FFDiskIOOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_DISKIO_MODULE_NAME, ffParseDiskIOCommandOptions, ffParseDiskIOJsonObject, ffPrintDiskIO, ffGenerateDiskIOJsonResult, ffPrintDiskIOHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_DISKIO_MODULE_NAME,
ffParseDiskIOCommandOptions,
ffParseDiskIOJsonObject,
ffPrintDiskIO,
ffGenerateDiskIOJsonResult,
ffPrintDiskIOHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
ffStrbufInit(&options->namePrefix);
+10 -1
View File
@@ -228,7 +228,16 @@ void ffPrintDisplayHelpFormat(void)
void ffInitDisplayOptions(FFDisplayOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_DISPLAY_MODULE_NAME, ffParseDisplayCommandOptions, ffParseDisplayJsonObject, ffPrintDisplay, ffGenerateDisplayJsonResult, ffPrintDisplayHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_DISPLAY_MODULE_NAME,
ffParseDisplayCommandOptions,
ffParseDisplayJsonObject,
ffPrintDisplay,
ffGenerateDisplayJsonResult,
ffPrintDisplayHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
options->compactType = FF_DISPLAY_COMPACT_TYPE_NONE;
options->preciseRefreshRate = false;
+10 -1
View File
@@ -109,7 +109,16 @@ void ffPrintFontHelpFormat(void)
void ffInitFontOptions(FFFontOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_FONT_MODULE_NAME, ffParseFontCommandOptions, ffParseFontJsonObject, ffPrintFont, ffGenerateFontJsonResult, ffPrintFontHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_FONT_MODULE_NAME,
ffParseFontCommandOptions,
ffParseFontJsonObject,
ffPrintFont,
ffGenerateFontJsonResult,
ffPrintFontHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -119,7 +119,16 @@ void ffPrintGamepadHelpFormat(void)
void ffInitGamepadOptions(FFGamepadOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_GAMEPAD_MODULE_NAME, ffParseGamepadCommandOptions, ffParseGamepadJsonObject, ffPrintGamepad, ffGenerateGamepadJsonResult, ffPrintGamepadHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_GAMEPAD_MODULE_NAME,
ffParseGamepadCommandOptions,
ffParseGamepadJsonObject,
ffPrintGamepad,
ffGenerateGamepadJsonResult,
ffPrintGamepadHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -285,7 +285,16 @@ void ffPrintGPUHelpFormat(void)
void ffInitGPUOptions(FFGPUOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_GPU_MODULE_NAME, ffParseGPUCommandOptions, ffParseGPUJsonObject, ffPrintGPU, ffGenerateGPUJsonResult, ffPrintGPUHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_GPU_MODULE_NAME,
ffParseGPUCommandOptions,
ffParseGPUJsonObject,
ffPrintGPU,
ffGenerateGPUJsonResult,
ffPrintGPUHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
options->forceVulkan = false;
+10 -1
View File
@@ -142,7 +142,16 @@ void ffPrintHostHelpFormat(void)
void ffInitHostOptions(FFHostOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_HOST_MODULE_NAME, ffParseHostCommandOptions, ffParseHostJsonObject, ffPrintHost, ffGenerateHostJsonResult, ffPrintHostHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_HOST_MODULE_NAME,
ffParseHostCommandOptions,
ffParseHostJsonObject,
ffPrintHost,
ffGenerateHostJsonResult,
ffPrintHostHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -80,7 +80,16 @@ void ffPrintIconsHelpFormat(void)
void ffInitIconsOptions(FFIconsOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_ICONS_MODULE_NAME, ffParseIconsCommandOptions, ffParseIconsJsonObject, ffPrintIcons, ffGenerateIconsJsonResult, ffPrintIconsHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_ICONS_MODULE_NAME,
ffParseIconsCommandOptions,
ffParseIconsJsonObject,
ffPrintIcons,
ffGenerateIconsJsonResult,
ffPrintIconsHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -78,7 +78,16 @@ void ffPrintKernelHelpFormat(void)
void ffInitKernelOptions(FFKernelOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_KERNEL_MODULE_NAME, ffParseKernelCommandOptions, ffParseKernelJsonObject, ffPrintKernel, ffGenerateKernelJsonResult, ffPrintKernelHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_KERNEL_MODULE_NAME,
ffParseKernelCommandOptions,
ffParseKernelJsonObject,
ffPrintKernel,
ffGenerateKernelJsonResult,
ffPrintKernelHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -118,7 +118,16 @@ void ffPrintLMHelpFormat(void)
void ffInitLMOptions(FFLMOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_LM_MODULE_NAME, ffParseLMCommandOptions, ffParseLMJsonObject, ffPrintLM, ffGenerateLMJsonResult, ffPrintLMHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_LM_MODULE_NAME,
ffParseLMCommandOptions,
ffParseLMJsonObject,
ffPrintLM,
ffGenerateLMJsonResult,
ffPrintLMHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -80,7 +80,16 @@ void ffPrintLocaleHelpFormat(void)
void ffInitLocaleOptions(FFLocaleOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_LOCALE_MODULE_NAME, ffParseLocaleCommandOptions, ffParseLocaleJsonObject, ffPrintLocale, ffGenerateLocaleJsonResult, ffPrintLocaleHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_LOCALE_MODULE_NAME,
ffParseLocaleCommandOptions,
ffParseLocaleJsonObject,
ffPrintLocale,
ffGenerateLocaleJsonResult,
ffPrintLocaleHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -324,7 +324,16 @@ void ffPrintLocalIpHelpFormat(void)
void ffInitLocalIpOptions(FFLocalIpOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_LOCALIP_MODULE_NAME, ffParseLocalIpCommandOptions, ffParseLocalIpJsonObject, ffPrintLocalIp, ffGenerateLocalIpJsonResult, ffPrintLocalIpHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_LOCALIP_MODULE_NAME,
ffParseLocalIpCommandOptions,
ffParseLocalIpJsonObject,
ffPrintLocalIp,
ffGenerateLocalIpJsonResult,
ffPrintLocalIpHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
options->showType = FF_LOCALIP_TYPE_IPV4_BIT;
+10 -1
View File
@@ -162,7 +162,16 @@ void ffPrintMediaHelpFormat(void)
void ffInitMediaOptions(FFMediaOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_MEDIA_MODULE_NAME, ffParseMediaCommandOptions, ffParseMediaJsonObject, ffPrintMedia, ffGenerateMediaJsonResult, ffPrintMediaHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_MEDIA_MODULE_NAME,
ffParseMediaCommandOptions,
ffParseMediaJsonObject,
ffPrintMedia,
ffGenerateMediaJsonResult,
ffPrintMediaHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -120,7 +120,16 @@ void ffPrintMemoryHelpFormat(void)
void ffInitMemoryOptions(FFMemoryOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_MEMORY_MODULE_NAME, ffParseMemoryCommandOptions, ffParseMemoryJsonObject, ffPrintMemory, ffGenerateMemoryJsonResult, ffPrintMemoryHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_MEMORY_MODULE_NAME,
ffParseMemoryCommandOptions,
ffParseMemoryJsonObject,
ffPrintMemory,
ffGenerateMemoryJsonResult,
ffPrintMemoryHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -152,7 +152,16 @@ void ffPrintMonitorHelpFormat(void)
void ffInitMonitorOptions(FFMonitorOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_MONITOR_MODULE_NAME, ffParseMonitorCommandOptions, ffParseMonitorJsonObject, ffPrintMonitor, ffGenerateMonitorJsonResult, ffPrintMonitorHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_MONITOR_MODULE_NAME,
ffParseMonitorCommandOptions,
ffParseMonitorJsonObject,
ffPrintMonitor,
ffGenerateMonitorJsonResult,
ffPrintMonitorHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -203,7 +203,16 @@ void ffPrintNetIOHelpFormat(void)
void ffInitNetIOOptions(FFNetIOOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_NETIO_MODULE_NAME, ffParseNetIOCommandOptions, ffParseNetIOJsonObject, ffPrintNetIO, ffGenerateNetIOJsonResult, ffPrintNetIOHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_NETIO_MODULE_NAME,
ffParseNetIOCommandOptions,
ffParseNetIOJsonObject,
ffPrintNetIO,
ffGenerateNetIOJsonResult,
ffPrintNetIOHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
ffStrbufInit(&options->namePrefix);
+10 -1
View File
@@ -103,7 +103,16 @@ void ffPrintOpenCLHelpFormat(void)
void ffInitOpenCLOptions(FFOpenCLOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_OPENCL_MODULE_NAME, ffParseOpenCLCommandOptions, ffParseOpenCLJsonObject, ffPrintOpenCL, ffGenerateOpenCLJsonResult, ffPrintOpenCLHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_OPENCL_MODULE_NAME,
ffParseOpenCLCommandOptions,
ffParseOpenCLJsonObject,
ffPrintOpenCL,
ffGenerateOpenCLJsonResult,
ffPrintOpenCLHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -141,7 +141,16 @@ void ffPrintOpenGLHelpFormat(void)
void ffInitOpenGLOptions(FFOpenGLOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_OPENGL_MODULE_NAME, ffParseOpenGLCommandOptions, ffParseOpenGLJsonObject, ffPrintOpenGL, ffGenerateOpenGLJsonResult, ffPrintOpenGLHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_OPENGL_MODULE_NAME,
ffParseOpenGLCommandOptions,
ffParseOpenGLJsonObject,
ffPrintOpenGL,
ffGenerateOpenGLJsonResult,
ffPrintOpenGLHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
#if defined(__linux__) || defined(__FreeBSD__)
+10 -1
View File
@@ -206,7 +206,16 @@ void ffPrintOSHelpFormat(void)
void ffInitOSOptions(FFOSOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_OS_MODULE_NAME, ffParseOSCommandOptions, ffParseOSJsonObject, ffPrintOS, ffGenerateOSJsonResult, ffPrintOSHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_OS_MODULE_NAME,
ffParseOSCommandOptions,
ffParseOSJsonObject,
ffPrintOS,
ffGenerateOSJsonResult,
ffPrintOSHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -206,7 +206,16 @@ void ffPrintPackagesHelpFormat(void)
void ffInitPackagesOptions(FFPackagesOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_PACKAGES_MODULE_NAME, ffParsePackagesCommandOptions, ffParsePackagesJsonObject, ffPrintPackages, ffGeneratePackagesJsonResult, ffPrintPackagesHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_PACKAGES_MODULE_NAME,
ffParsePackagesCommandOptions,
ffParsePackagesJsonObject,
ffPrintPackages,
ffGeneratePackagesJsonResult,
ffPrintPackagesHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -128,7 +128,16 @@ void ffPrintPlayerHelpFormat(void)
void ffInitPlayerOptions(FFPlayerOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_PLAYER_MODULE_NAME, ffParsePlayerCommandOptions, ffParsePlayerJsonObject, ffPrintPlayer, ffGeneratePlayerJsonResult, ffPrintPlayerHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_PLAYER_MODULE_NAME,
ffParsePlayerCommandOptions,
ffParsePlayerJsonObject,
ffPrintPlayer,
ffGeneratePlayerJsonResult,
ffPrintPlayerHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -129,7 +129,16 @@ void ffPrintPowerAdapterHelpFormat(void)
void ffInitPowerAdapterOptions(FFPowerAdapterOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_POWERADAPTER_MODULE_NAME, ffParsePowerAdapterCommandOptions, ffParsePowerAdapterJsonObject, ffPrintPowerAdapter, ffGeneratePowerAdapterJsonResult, ffPrintPowerAdapterHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_POWERADAPTER_MODULE_NAME,
ffParsePowerAdapterCommandOptions,
ffParsePowerAdapterJsonObject,
ffPrintPowerAdapter,
ffGeneratePowerAdapterJsonResult,
ffPrintPowerAdapterHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -81,7 +81,16 @@ void ffPrintProcessesHelpFormat(void)
void ffInitProcessesOptions(FFProcessesOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_PROCESSES_MODULE_NAME, ffParseProcessesCommandOptions, ffParseProcessesJsonObject, ffPrintProcesses, ffGenerateProcessesJsonResult, ffPrintProcessesHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_PROCESSES_MODULE_NAME,
ffParseProcessesCommandOptions,
ffParseProcessesJsonObject,
ffPrintProcesses,
ffGenerateProcessesJsonResult,
ffPrintProcessesHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -122,7 +122,16 @@ void ffPrintPublicIpHelpFormat(void)
void ffInitPublicIpOptions(FFPublicIpOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_PUBLICIP_MODULE_NAME, ffParsePublicIpCommandOptions, ffParsePublicIpJsonObject, ffPrintPublicIp, ffGeneratePublicIpJsonResult, ffPrintPublicIpHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_PUBLICIP_MODULE_NAME,
ffParsePublicIpCommandOptions,
ffParsePublicIpJsonObject,
ffPrintPublicIp,
ffGeneratePublicIpJsonResult,
ffPrintPublicIpHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
ffStrbufInit(&options->url);
+10 -1
View File
@@ -111,7 +111,16 @@ void ffParseSeparatorJsonObject(FFSeparatorOptions* options, yyjson_val* module)
void ffInitSeparatorOptions(FFSeparatorOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_SEPARATOR_MODULE_NAME, ffParseSeparatorCommandOptions, ffParseSeparatorJsonObject, ffPrintSeparator, NULL, NULL);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_SEPARATOR_MODULE_NAME,
ffParseSeparatorCommandOptions,
ffParseSeparatorJsonObject,
ffPrintSeparator,
NULL,
NULL,
NULL
);
ffStrbufInit(&options->string);
}
+10 -1
View File
@@ -101,7 +101,16 @@ void ffPrintShellHelpFormat(void)
void ffInitShellOptions(FFShellOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_SHELL_MODULE_NAME, ffParseShellCommandOptions, ffParseShellJsonObject, ffPrintShell, ffGenerateShellJsonResult, ffPrintShellHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_SHELL_MODULE_NAME,
ffParseShellCommandOptions,
ffParseShellJsonObject,
ffPrintShell,
ffGenerateShellJsonResult,
ffPrintShellHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -189,7 +189,16 @@ void ffPrintSoundHelpFormat(void)
void ffInitSoundOptions(FFSoundOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_SOUND_MODULE_NAME, ffParseSoundCommandOptions, ffParseSoundJsonObject, ffPrintSound, ffGenerateSoundJsonResult, ffPrintSoundHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_SOUND_MODULE_NAME,
ffParseSoundCommandOptions,
ffParseSoundJsonObject,
ffPrintSound,
ffGenerateSoundJsonResult,
ffPrintSoundHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
options->soundType = FF_SOUND_TYPE_MAIN;
+10 -1
View File
@@ -127,7 +127,16 @@ void ffPrintSwapHelpFormat(void)
void ffInitSwapOptions(FFSwapOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_SWAP_MODULE_NAME, ffParseSwapCommandOptions, ffParseSwapJsonObject, ffPrintSwap, ffGenerateSwapJsonResult, ffPrintSwapHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_SWAP_MODULE_NAME,
ffParseSwapCommandOptions,
ffParseSwapJsonObject,
ffPrintSwap,
ffGenerateSwapJsonResult,
ffPrintSwapHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -100,7 +100,16 @@ void ffPrintTerminalHelpFormat(void)
void ffInitTerminalOptions(FFTerminalOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_TERMINAL_MODULE_NAME, ffParseTerminalCommandOptions, ffParseTerminalJsonObject, ffPrintTerminal, ffGenerateTerminalJsonResult, ffPrintTerminalHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_TERMINAL_MODULE_NAME,
ffParseTerminalCommandOptions,
ffParseTerminalJsonObject,
ffPrintTerminal,
ffGenerateTerminalJsonResult,
ffPrintTerminalHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -126,7 +126,16 @@ void ffPrintTerminalFontHelpFormat(void)
void ffInitTerminalFontOptions(FFTerminalFontOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_TERMINALFONT_MODULE_NAME, ffParseTerminalFontCommandOptions, ffParseTerminalFontJsonObject, ffPrintTerminalFont, ffGenerateTerminalFontJsonResult, ffPrintTerminalFontHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_TERMINALFONT_MODULE_NAME,
ffParseTerminalFontCommandOptions,
ffParseTerminalFontJsonObject,
ffPrintTerminalFont,
ffGenerateTerminalFontJsonResult,
ffPrintTerminalFontHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -95,7 +95,16 @@ void ffPrintTerminalSizeHelpFormat(void)
void ffInitTerminalSizeOptions(FFTerminalSizeOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_TERMINALSIZE_MODULE_NAME, ffParseTerminalSizeCommandOptions, ffParseTerminalSizeJsonObject, ffPrintTerminalSize, ffGenerateTerminalSizeJsonResult, ffPrintTerminalSizeHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_TERMINALSIZE_MODULE_NAME,
ffParseTerminalSizeCommandOptions,
ffParseTerminalSizeJsonObject,
ffPrintTerminalSize,
ffGenerateTerminalSizeJsonResult,
ffPrintTerminalSizeHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -80,7 +80,16 @@ void ffPrintThemeHelpFormat(void)
void ffInitThemeOptions(FFThemeOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_THEME_MODULE_NAME, ffParseThemeCommandOptions, ffParseThemeJsonObject, ffPrintTheme, ffGenerateThemeJsonResult, ffPrintThemeHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_THEME_MODULE_NAME,
ffParseThemeCommandOptions,
ffParseThemeJsonObject,
ffPrintTheme,
ffGenerateThemeJsonResult,
ffPrintThemeHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -169,7 +169,16 @@ void ffPrintTitleHelpFormat(void)
void ffInitTitleOptions(FFTitleOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_TITLE_MODULE_NAME, ffParseTitleCommandOptions, ffParseTitleJsonObject, ffPrintTitle, ffGenerateTitleJsonResult, ffPrintTitleHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_TITLE_MODULE_NAME,
ffParseTitleCommandOptions,
ffParseTitleJsonObject,
ffPrintTitle,
ffGenerateTitleJsonResult,
ffPrintTitleHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
ffStrbufSetStatic(&options->moduleArgs.key, " ");
+10 -1
View File
@@ -144,7 +144,16 @@ void ffPrintUptimeHelpFormat(void)
void ffInitUptimeOptions(FFUptimeOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_UPTIME_MODULE_NAME, ffParseUptimeCommandOptions, ffParseUptimeJsonObject, ffPrintUptime, ffGenerateUptimeJsonResult, ffPrintUptimeHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_UPTIME_MODULE_NAME,
ffParseUptimeCommandOptions,
ffParseUptimeJsonObject,
ffPrintUptime,
ffGenerateUptimeJsonResult,
ffPrintUptimeHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -176,7 +176,16 @@ void ffPrintUsersHelpFormat(void)
void ffInitUsersOptions(FFUsersOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_USERS_MODULE_NAME, ffParseUsersCommandOptions, ffParseUsersJsonObject, ffPrintUsers, ffGenerateUsersJsonResult, ffPrintUsersHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_USERS_MODULE_NAME,
ffParseUsersCommandOptions,
ffParseUsersJsonObject,
ffPrintUsers,
ffGenerateUsersJsonResult,
ffPrintUsersHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
options->compact = false;
+10 -1
View File
@@ -121,7 +121,16 @@ void ffPrintVersionHelpFormat(void)
void ffInitVersionOptions(FFVersionOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_VERSION_MODULE_NAME, ffParseVersionCommandOptions, ffParseVersionJsonObject, ffPrintVersion, ffGenerateVersionJsonResult, ffPrintVersionHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_VERSION_MODULE_NAME,
ffParseVersionCommandOptions,
ffParseVersionJsonObject,
ffPrintVersion,
ffGenerateVersionJsonResult,
ffPrintVersionHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -137,7 +137,16 @@ void ffPrintVulkanHelpFormat(void)
void ffInitVulkanOptions(FFVulkanOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_VULKAN_MODULE_NAME, ffParseVulkanCommandOptions, ffParseVulkanJsonObject, ffPrintVulkan, ffGenerateVulkanJsonResult, ffPrintVulkanHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_VULKAN_MODULE_NAME,
ffParseVulkanCommandOptions,
ffParseVulkanJsonObject,
ffPrintVulkan,
ffGenerateVulkanJsonResult,
ffPrintVulkanHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -90,7 +90,16 @@ void ffPrintWallpaperHelpFormat(void)
void ffInitWallpaperOptions(FFWallpaperOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_WALLPAPER_MODULE_NAME, ffParseWallpaperCommandOptions, ffParseWallpaperJsonObject, ffPrintWallpaper, ffGenerateWallpaperJsonResult, ffPrintWallpaperHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_WALLPAPER_MODULE_NAME,
ffParseWallpaperCommandOptions,
ffParseWallpaperJsonObject,
ffPrintWallpaper,
ffGenerateWallpaperJsonResult,
ffPrintWallpaperHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -117,7 +117,16 @@ void ffPrintWeatherHelpFormat(void)
void ffInitWeatherOptions(FFWeatherOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_WEATHER_MODULE_NAME, ffParseWeatherCommandOptions, ffParseWeatherJsonObject, ffPrintWeather, ffGenerateWeatherJsonResult, ffPrintWeatherHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_WEATHER_MODULE_NAME,
ffParseWeatherCommandOptions,
ffParseWeatherJsonObject,
ffPrintWeather,
ffGenerateWeatherJsonResult,
ffPrintWeatherHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
ffStrbufInit(&options->location);
+10 -1
View File
@@ -161,7 +161,16 @@ void ffPrintWifiHelpFormat(void)
void ffInitWifiOptions(FFWifiOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_WIFI_MODULE_NAME, ffParseWifiCommandOptions, ffParseWifiJsonObject, ffPrintWifi, ffGenerateWifiJsonResult, ffPrintWifiHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_WIFI_MODULE_NAME,
ffParseWifiCommandOptions,
ffParseWifiJsonObject,
ffPrintWifi,
ffGenerateWifiJsonResult,
ffPrintWifiHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -94,7 +94,16 @@ void ffPrintWMHelpFormat(void)
void ffInitWMOptions(FFWMOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_WM_MODULE_NAME, ffParseWMCommandOptions, ffParseWMJsonObject, ffPrintWM, ffGenerateWMJsonResult, ffPrintWMHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_WM_MODULE_NAME,
ffParseWMCommandOptions,
ffParseWMJsonObject,
ffPrintWM,
ffGenerateWMJsonResult,
ffPrintWMHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}
+10 -1
View File
@@ -78,7 +78,16 @@ void ffPrintWMthemeHelpFormat(void)
void ffInitWMThemeOptions(FFWMThemeOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_WMTHEME_MODULE_NAME, ffParseWMThemeCommandOptions, ffParseWMThemeJsonObject, ffPrintWMTheme, ffGenerateWMThemeJsonResult, ffPrintWMthemeHelpFormat);
ffOptionInitModuleBaseInfo(
&options->moduleInfo,
FF_WMTHEME_MODULE_NAME,
ffParseWMThemeCommandOptions,
ffParseWMThemeJsonObject,
ffPrintWMTheme,
ffGenerateWMThemeJsonResult,
ffPrintWMthemeHelpFormat,
NULL
);
ffOptionInitModuleArg(&options->moduleArgs);
}