Fastfetch: make --size-max-prefix accept enum values.

This commit is contained in:
李通洲
2023-07-10 17:30:08 +08:00
parent ad9103c767
commit 7bd0780f1a
5 changed files with 40 additions and 10 deletions
+4 -3
View File
@@ -302,9 +302,10 @@
"default": 2
},
"sizeMaxPrefix": {
"type": "integer",
"title": "Set the largest binary prefix to use when formatting sizes. 0 is B; 1 is KB; 2 is MB; etc.",
"default": 255
"type": "string",
"title": "Set the largest binary prefix to use when formatting sizes",
"enum": ["B", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"],
"default": "YB"
},
"percentType": {
"type": "number",
+17 -1
View File
@@ -389,7 +389,23 @@ const char* ffParseDisplayJsonConfig(void)
else if (ffStrEqualsIgnCase(key, "sizeNdigits"))
config->sizeNdigits = (uint8_t) yyjson_get_uint(val);
else if (ffStrEqualsIgnCase(key, "sizeMaxPrefix"))
config->sizeMaxPrefix = (uint8_t) yyjson_get_uint(val);
{
int value;
const char* error = ffJsonConfigParseEnum(val, &value, (FFKeyValuePair[]) {
{ "B", 0 },
{ "kB", 1 },
{ "MB", 2 },
{ "GB", 3 },
{ "TB", 4 },
{ "PB", 5 },
{ "EB", 6 },
{ "ZB", 7 },
{ "YB", 8 },
{}
});
if (error) return error;
config->sizeMaxPrefix = (uint8_t) value;
}
else if (ffStrEqualsIgnCase(key, "percentType"))
config->percentType = (uint32_t) yyjson_get_uint(val);
else if (ffStrEqualsIgnCase(key, "noBuffer"))
+4 -4
View File
@@ -159,10 +159,10 @@
#--size-ndigits 2
# Size max prefix option:
# Sets the largest binary prefix to use when formatting sizes. 0 is B; 1 is KB; 2 is MB; etc.
# Must be an possitive integer.
# Default is 255 (unlimited).
#--size-max-prefix 255
# Sets the largest binary prefix to use when formatting sizes.
# Must be one of B, kB, MB, GB, TB, PB, EB, ZB, YB
# Default is YB.
#--size-max-prefix YB
# Disable output buffer option:
# Sets if the stdout application buffer should be disabled.
+1 -1
View File
@@ -66,7 +66,7 @@ Display options:
--percent-type <value>: Set the percentage output type. 1 for percentage number, 2 for bar, 3 for both, 6 for bar only, 9 for colored number. Default is 1
--no-buffer <?value>: Set if the stdout application buffer should be disabled. Default is false
--size-ndigits <value>: Set the number of digits to keep after the decimal point when formatting sizes
--size-max-prefix <value>: Set the largest binary prefix to use when formatting sizes. 0 is B; 1 is KB; 2 is MB; etc.
--size-max-prefix <value>: Set the largest binary prefix to use when formatting sizes. Default is YB
General module options:
--<module>-format <format>: Set the format string to use for each specific module.
+14 -1
View File
@@ -918,7 +918,20 @@ static void parseOption(FFdata* data, const char* key, const char* value)
else if(ffStrEqualsIgnCase(key, "--size-ndigits"))
instance.config.sizeNdigits = (uint8_t) ffOptionParseUInt32(key, value);
else if(ffStrEqualsIgnCase(key, "--size-max-prefix"))
instance.config.sizeMaxPrefix = (uint8_t) ffOptionParseUInt32(key, value);
{
instance.config.sizeMaxPrefix = (uint8_t) ffOptionParseEnum(key, value, (FFKeyValuePair[]) {
{ "B", 0 },
{ "kB", 1 },
{ "MB", 2 },
{ "GB", 3 },
{ "TB", 4 },
{ "PB", 5 },
{ "EB", 6 },
{ "ZB", 7 },
{ "YB", 8 },
{}
});
}
else if(ffStrEqualsIgnCase(key, "--percent-type"))
instance.config.percentType = ffOptionParseUInt32(key, value);
else if(ffStrEqualsIgnCase(key, "--no-buffer"))