Separate --logo-file option

This commit is contained in:
alborrajo
2021-05-27 17:13:26 +02:00
parent 53389850c2
commit de72ea6ee6
4 changed files with 41 additions and 22 deletions
+1
View File
@@ -192,6 +192,7 @@ __fastfetch_completion()
local FF_OPTIONS_LOGO=(
"-l"
"--logo"
"--logo-file"
)
if __fastfetch_previous_matches "${FF_OPTIONS_SINGLE[@]}"; then
+30 -21
View File
@@ -302,28 +302,37 @@ static void loadLogoFromFile(FFlogo* logo, bool doColor, FFstrbuf* configColor,
void ffLoadLogoSet(FFconfig* config, const char* logo)
{
if(strcasecmp(logo, "none") == 0)
{
loadNoneLogo(&config->logo);
config->logo_spacing = 0; //This is wanted in most cases, so just set it
if(config->readLogoFromFile) {
ffLoadLogoFromFile(config, logo);
} else {
if(strcasecmp(logo, "none") == 0)
{
loadNoneLogo(&config->logo);
config->logo_spacing = 0; //This is wanted in most cases, so just set it
}
else if(strcasecmp(logo, "arch") == 0)
loadArchLogo(&config->logo, config->colorLogo);
else if(strcasecmp(logo, "artix") == 0)
loadArtixLogo(&config->logo, config->colorLogo);
else if(strcasecmp(logo, "ubuntu") == 0)
loadUbuntuLogo(&config->logo, config->colorLogo);
else if(strcasecmp(logo, "debian") == 0)
loadDebianLogo(&config->logo, config->colorLogo);
else if(strcasecmp(logo, "manjaro") == 0)
loadManjaroLogo(&config->logo, config->colorLogo);
else if(strcasecmp(logo, "void") == 0)
loadVoidLogo(&config->logo, config->colorLogo);
else if(strcasecmp(logo, "garuda") == 0)
loadGarudaLogo(&config->logo, config->colorLogo);
else if(strcasecmp(logo, "unknown") == 0)
loadUnknownLogo(&config->logo);
else
ffLoadLogoFromFile(config, logo);
}
else if(strcasecmp(logo, "arch") == 0)
loadArchLogo(&config->logo, config->colorLogo);
else if(strcasecmp(logo, "artix") == 0)
loadArtixLogo(&config->logo, config->colorLogo);
else if(strcasecmp(logo, "ubuntu") == 0)
loadUbuntuLogo(&config->logo, config->colorLogo);
else if(strcasecmp(logo, "debian") == 0)
loadDebianLogo(&config->logo, config->colorLogo);
else if(strcasecmp(logo, "manjaro") == 0)
loadManjaroLogo(&config->logo, config->colorLogo);
else if(strcasecmp(logo, "void") == 0)
loadVoidLogo(&config->logo, config->colorLogo);
else if(strcasecmp(logo, "garuda") == 0)
loadGarudaLogo(&config->logo, config->colorLogo);
else if(strcasecmp(logo, "unknown") == 0)
loadUnknownLogo(&config->logo);
else if(access(logo, R_OK) == 0)
}
void ffLoadLogoFromFile(FFconfig* config, const char* logo) {
if(access(logo, R_OK) == 0)
loadLogoFromFile(&config->logo, config->colorLogo, &config->color, logo);
else
{
+9 -1
View File
@@ -62,6 +62,7 @@ static inline void printHelp()
"\n"
"Logo options:\n"
" -l <name>, --logo <name>: sets the shown logo. Also changes the main color accordingly\n"
" --logo-file <path>: sets the path of the file to use as the logo\n"
" --color-logo <?value>: if set to false, the logo will be black / white\n"
"\n"
"Format options: Provide the format string for custom output. Use fastfetch --help *-format for specific help.\n"
@@ -789,8 +790,15 @@ static void parseOption(FFinstance* instance, FFdata* data, const char* key, con
instance->config.allowSlowOperations = optionParseBoolean(value);
else if(strcasecmp(key, "--structure") == 0)
optionParseString(key, value, &data->structure);
else if(strcasecmp(key, "-l") == 0 || strcasecmp(key, "--logo") == 0)
else if(strcasecmp(key, "--logo-file") == 0)
{
optionParseString(key, value, &data->logoName);
instance->config.readLogoFromFile = true;
}
else if(strcasecmp(key, "-l") == 0 || strcasecmp(key, "--logo") == 0) {
optionParseString(key, value, &data->logoName);
instance->config.readLogoFromFile = false;
}
else if(strcasecmp(key, "-s") == 0 || strcasecmp(key, "--separator") == 0)
optionParseString(key, value, &instance->config.separator);
else if(strcasecmp(key, "-c") == 0 || strcasecmp(key, "--color") == 0)
+1
View File
@@ -41,6 +41,7 @@ typedef struct FFconfig
int16_t offsetx;
FFstrbuf color;
uint32_t titleLength;
bool readLogoFromFile;
bool colorLogo;
bool showErrors;
bool recache;