diff --git a/src/main.go b/src/main.go index 15403b8..23b5e87 100644 --- a/src/main.go +++ b/src/main.go @@ -16,6 +16,7 @@ var SystemConfigDir = "/etc/" // Flag variables var ShowVersion = false var ConfigPath = "" +var Ascii = "" var ShowModuleTimeTaken = false func main() { @@ -29,7 +30,7 @@ func parseFlags() { flag.BoolVar(&ShowVersion, "version", false, "Show Stormfetch version") flag.StringVar(&ConfigPath, "config", "", "Use the specified config file") flag.BoolVar(&ShowModuleTimeTaken, "time-taken", false, "Show time taken to execute each module") - flag.StringVar(&config.Ascii, "ascii", config.Ascii, "Set distro ascii") + flag.StringVar(&Ascii, "ascii", "", "Set distro ascii") flag.StringVar(&config.DistroName, "distro-name", config.DistroName, "Set distro name") flag.Parse() } diff --git a/src/system.go b/src/system.go index 3631319..8207668 100644 --- a/src/system.go +++ b/src/system.go @@ -65,39 +65,35 @@ func GetDistroAsciiArt() string { (| | ) /'\_ _/'\ \___)=(___/ ` - var id string - if config.Ascii == "auto" { - id = GetDistroInfo().ID + + // Get ascii name to use + var asciiName string + if Ascii != "" { + asciiName = Ascii + } else if config.Ascii == "auto" { + asciiName = GetDistroInfo().ID } else { - id = config.Ascii + asciiName = config.Ascii } + + // Check for ascii art in home directory userConfDir, err := os.UserConfigDir() - if err != nil { - if _, err := os.Stat(path.Join(SystemConfigDir, "stormfetch/ascii/", id)); err == nil { - bytes, err := os.ReadFile(path.Join(SystemConfigDir, "stormfetch/ascii/", id)) - if err != nil { - return defaultAscii + if err == nil { + if _, err := os.Stat(path.Join(userConfDir, "stormfetch/ascii/", asciiName)); err == nil { + if bytes, err := os.ReadFile(path.Join(userConfDir, "stormfetch/ascii/", asciiName)); err == nil { + return string(bytes) } + } + } + + // Check for ascii art in system config directory + if _, err := os.Stat(path.Join(SystemConfigDir, "stormfetch/ascii/", asciiName)); err == nil { + if bytes, err := os.ReadFile(path.Join(SystemConfigDir, "stormfetch/ascii/", asciiName)); err == nil { return string(bytes) - } else { - return defaultAscii } } - if _, err := os.Stat(path.Join(userConfDir, "stormfetch/ascii/", id)); err == nil { - bytes, err := os.ReadFile(path.Join(userConfDir, "stormfetch/ascii/", id)) - if err != nil { - return defaultAscii - } - return string(bytes) - } else if _, err := os.Stat(path.Join(SystemConfigDir, "stormfetch/ascii/", id)); err == nil { - bytes, err := os.ReadFile(path.Join(SystemConfigDir, "stormfetch/ascii/", id)) - if err != nil { - return defaultAscii - } - return strings.TrimRight(string(bytes), "\n\t ") - } else { - return defaultAscii - } + + return defaultAscii } func GetArch() string {