mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2025-02-20 11:43:27 +08:00
Config: add --list-config-paths
option
This commit is contained in:
parent
3caa92c567
commit
0d722ebe0b
@ -8,6 +8,7 @@ Features:
|
||||
* Raw image file as logo support (@CarterLi)
|
||||
* Look for config files in `$LOCALAPPDATA` (Windows)
|
||||
* Look for config files in `~/Library/Preferences` (macOS)
|
||||
* Add `--list-config-paths` option which list search paths of config files
|
||||
|
||||
Logos:
|
||||
* Raspbian (@IamNoRobot, #373)
|
||||
|
@ -4,6 +4,7 @@ Informative options:
|
||||
-h,--help: Show this message
|
||||
-h,--help <command>: Show help for a specific command
|
||||
-v,--version: Show the version of fastfetch
|
||||
--list-config-paths: List search paths of config files
|
||||
--list-logos: List available logos
|
||||
--list-modules: List available modules
|
||||
--list-presets: List presets fastfetch knows about; they can be loaded with --load-config (+)
|
||||
|
@ -538,6 +538,15 @@ static inline void listAvailablePresets(FFinstance* instance)
|
||||
ffStrbufDestroy(&folder);
|
||||
}
|
||||
|
||||
static void listConfigPaths(FFinstance* instance)
|
||||
{
|
||||
FF_LIST_FOR_EACH(FFstrbuf, folder, instance->state.configDirs)
|
||||
{
|
||||
ffStrbufAppendS(folder, "fastfetch/config.conf");
|
||||
printf("%s%s\n", folder->chars, ffFileExists(folder->chars, S_IFREG) ? " (*)" : "");
|
||||
}
|
||||
}
|
||||
|
||||
static void parseOption(FFinstance* instance, FFdata* data, const char* key, const char* value);
|
||||
|
||||
static bool parseConfigFile(FFinstance* instance, FFdata* data, const char* path)
|
||||
@ -902,6 +911,11 @@ static void parseOption(FFinstance* instance, FFdata* data, const char* key, con
|
||||
listAvailablePresets(instance);
|
||||
exit(0);
|
||||
}
|
||||
else if(strcasecmp(subkey, "-config-paths") == 0)
|
||||
{
|
||||
listConfigPaths(instance);
|
||||
exit(0);
|
||||
}
|
||||
else if(strcasecmp(subkey, "-features") == 0)
|
||||
{
|
||||
ffListFeatures();
|
||||
|
@ -45,6 +45,12 @@ static inline void ffListSort(FFlist* list, int(*compar)(const void*, const void
|
||||
qsort(list->data, list->length, list->elementSize, compar);
|
||||
}
|
||||
|
||||
#define FF_LIST_FOR_EACH(itemType, itemVarName, listVar) \
|
||||
assert(sizeof(itemType) == (listVar).elementSize); \
|
||||
for(itemType* itemVarName = (itemType*)(listVar).data; \
|
||||
itemVarName - (itemType*)(listVar).data < (listVar).length; \
|
||||
++itemVarName)
|
||||
|
||||
#if defined(_WIN32) || defined(__APPLE__)
|
||||
#define FF_LIST_AUTO_DESTROY FFlist __attribute__((__cleanup__(ffListDestroy)))
|
||||
#endif
|
||||
|
10
tests/list.c
10
tests/list.c
@ -40,6 +40,10 @@ int main(void)
|
||||
VERIFY(list.capacity == 0);
|
||||
VERIFY(list.length == 0);
|
||||
|
||||
//forEach
|
||||
FF_LIST_FOR_EACH(uint32_t, item, list)
|
||||
VERIFY(false);
|
||||
|
||||
//add
|
||||
for (uint32_t i = 1; i <= FF_LIST_DEFAULT_ALLOC + 1; ++i)
|
||||
{
|
||||
@ -61,6 +65,12 @@ int main(void)
|
||||
VERIFY(*(uint32_t*)ffListGet(&list, i - 1) == i);
|
||||
}
|
||||
|
||||
uint32_t sum = 0;
|
||||
//forEach
|
||||
FF_LIST_FOR_EACH(uint32_t, item, list)
|
||||
sum += *item;
|
||||
VERIFY(sum == (1 + FF_LIST_DEFAULT_ALLOC + 1) * (FF_LIST_DEFAULT_ALLOC + 1) / 2);
|
||||
|
||||
// ffListFirstIndexComp
|
||||
uint32_t n = 10;
|
||||
VERIFY(ffListFirstIndexComp(&list, &n, numEqualsAdapter) == 9);
|
||||
|
Loading…
x
Reference in New Issue
Block a user