From 9209ac5773a1ead7890a74375caff246d429bb4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Wed, 15 Mar 2023 17:02:54 +0800 Subject: [PATCH] Colors: support JSON config --- CMakeLists.txt | 2 +- src/fastfetch.c | 2 +- src/modules/{ => colors}/colors.c | 8 ++++++++ src/modules/colors/colors.h | 12 ++++++++++++ src/modules/jsonconfig/jsonconfig.c | 1 + src/modules/modules.h | 1 + 6 files changed, 24 insertions(+), 2 deletions(-) rename src/modules/{ => colors}/colors.c (82%) create mode 100644 src/modules/colors/colors.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 162626cf4..6090b0de2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -269,7 +269,7 @@ set(LIBFASTFETCH_SRC src/modules/brightness/brightness.c src/modules/break/break.c src/modules/chassis.c - src/modules/colors.c + src/modules/colors/colors.c src/modules/cpu.c src/modules/cpuUsage.c src/modules/cursor.c diff --git a/src/fastfetch.c b/src/fastfetch.c index 80df7fc42..259eb23a7 100644 --- a/src/fastfetch.c +++ b/src/fastfetch.c @@ -1331,7 +1331,7 @@ static void parseStructureCommand(FFinstance* instance, FFdata* data, const char ffPrintMedia(instance); else if(strcasecmp(line, FF_DATETIME_MODULE_NAME) == 0) ffPrintDateTime(instance, &instance->config.dateTime); - else if(strcasecmp(line, "colors") == 0) + else if(strcasecmp(line, FF_COLORS_MODULE_NAME) == 0) ffPrintColors(instance); else if(strcasecmp(line, "vulkan") == 0) ffPrintVulkan(instance); diff --git a/src/modules/colors.c b/src/modules/colors/colors.c similarity index 82% rename from src/modules/colors.c rename to src/modules/colors/colors.c index 186a225cf..a355844c5 100644 --- a/src/modules/colors.c +++ b/src/modules/colors/colors.c @@ -1,6 +1,7 @@ #include "fastfetch.h" #include "common/printing.h" #include "util/textModifier.h" +#include "modules/colors/colors.h" void ffPrintColors(FFinstance* instance) { @@ -28,3 +29,10 @@ void ffPrintColors(FFinstance* instance) puts(FASTFETCH_TEXT_MODIFIER_RESET); } + +#ifdef FF_HAVE_JSONC +void ffParseColorsJsonObject(FFinstance* instance, FF_MAYBE_UNUSED json_object* module) +{ + return ffPrintColors(instance); +} +#endif diff --git a/src/modules/colors/colors.h b/src/modules/colors/colors.h new file mode 100644 index 000000000..11887735d --- /dev/null +++ b/src/modules/colors/colors.h @@ -0,0 +1,12 @@ +#pragma once + +#include "fastfetch.h" + +#define FF_COLORS_MODULE_NAME "Colors" + +void ffPrintColors(FFinstance* instance); + +#ifdef FF_HAVE_JSONC +#include "common/jsonconfig.h" +void ffParseColorsJsonObject(FFinstance* instance, json_object* module); +#endif diff --git a/src/modules/jsonconfig/jsonconfig.c b/src/modules/jsonconfig/jsonconfig.c index e2ee26dfb..50adc012b 100644 --- a/src/modules/jsonconfig/jsonconfig.c +++ b/src/modules/jsonconfig/jsonconfig.c @@ -40,6 +40,7 @@ static bool parseModuleJsonObject(FFinstance* instance, const char* type, json_o case 'C': { return tryModule(instance, type, module, FF_COMMAND_MODULE_NAME, ffParseCommandJsonObject) || + tryModule(instance, type, module, FF_COLORS_MODULE_NAME, ffParseColorsJsonObject) || false; } diff --git a/src/modules/modules.h b/src/modules/modules.h index 46ab35e4a..f9c8d51ee 100644 --- a/src/modules/modules.h +++ b/src/modules/modules.h @@ -10,6 +10,7 @@ #include "modules/board/board.h" #include "modules/break/break.h" #include "modules/command/command.h" +#include "modules/colors/colors.h" #include "modules/datetime/datetime.h" #include "modules/display/display.h" #include "modules/host/host.h"