diff --git a/main.go b/main.go index a95a8ef..63e70d5 100644 --- a/main.go +++ b/main.go @@ -3,7 +3,7 @@ package main import ( "flag" "fmt" - yaml "gopkg.in/yaml.v3" + "gopkg.in/yaml.v3" "log" "os" "os/exec" @@ -26,6 +26,7 @@ var config = StormfetchConfig{ type StormfetchConfig struct { Ascii string `yaml:"distro_ascii"` + DistroName string `yaml:"distro_name"` FetchScript string `yaml:"fetch_script"` AnsiiColors []int `yaml:"ansii_colors"` ForceConfigAnsii bool `yaml:"force_config_ansii"` @@ -80,6 +81,7 @@ func readConfig() { func readFlags() { flag.StringVar(&config.Ascii, "ascii", config.Ascii, "help message for flagname") + flag.StringVar(&config.DistroName, "distro-name", config.DistroName, "help message for flagname") flag.Parse() } diff --git a/utils.go b/utils.go index e5d8e44..89361b7 100644 --- a/utils.go +++ b/utils.go @@ -28,41 +28,32 @@ type DistroInfo struct { } func getDistroInfo() DistroInfo { - distroID := "" + info := DistroInfo{ + ID: "unknown", + LongName: "Unknown", + ShortName: "Unknown", + } + if strings.TrimSpace(config.DistroName) != "" { + info.LongName = strings.TrimSpace(config.DistroName) + info.ShortName = strings.TrimSpace(config.DistroName) + } var releaseMap = make(map[string]string) if _, err := os.Stat("/etc/os-release"); err == nil { releaseMap, err = ReadKeyValueFile("/etc/os-release") if err != nil { - return DistroInfo{ - ID: "unknown", - LongName: "Unknown", - ShortName: "Unknown", - } - } - if value, ok := releaseMap["ID"]; ok { - distroID = value + return info } } - - switch distroID { - default: - if id, ok := releaseMap["ID"]; ok { - if longName, ok := releaseMap["PRETTY_NAME"]; ok { - if shortName, ok := releaseMap["NAME"]; ok { - return DistroInfo{ - ID: id, - LongName: longName, - ShortName: shortName, - } - } - } - } - return DistroInfo{ - ID: "unknown", - LongName: "Unknown", - ShortName: "Unknown", - } + if id, ok := releaseMap["ID"]; ok { + info.ID = id } + if longName, ok := releaseMap["PRETTY_NAME"]; ok && info.LongName == "Unknown" { + info.LongName = longName + } + if shortName, ok := releaseMap["NAME"]; ok && info.ShortName == "Unknown" { + info.ShortName = shortName + } + return info } func getDistroAsciiArt() string {