Added a --distro-name flag and distro_name config option

This commit is contained in:
CapCreeperGR 2024-06-09 11:11:18 +03:00
parent 66f3891b40
commit 7b8c017ed0
2 changed files with 22 additions and 29 deletions

View File

@ -3,7 +3,7 @@ package main
import ( import (
"flag" "flag"
"fmt" "fmt"
yaml "gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"log" "log"
"os" "os"
"os/exec" "os/exec"
@ -26,6 +26,7 @@ var config = StormfetchConfig{
type StormfetchConfig struct { type StormfetchConfig struct {
Ascii string `yaml:"distro_ascii"` Ascii string `yaml:"distro_ascii"`
DistroName string `yaml:"distro_name"`
FetchScript string `yaml:"fetch_script"` FetchScript string `yaml:"fetch_script"`
AnsiiColors []int `yaml:"ansii_colors"` AnsiiColors []int `yaml:"ansii_colors"`
ForceConfigAnsii bool `yaml:"force_config_ansii"` ForceConfigAnsii bool `yaml:"force_config_ansii"`
@ -80,6 +81,7 @@ func readConfig() {
func readFlags() { func readFlags() {
flag.StringVar(&config.Ascii, "ascii", config.Ascii, "help message for flagname") 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() flag.Parse()
} }

View File

@ -28,41 +28,32 @@ type DistroInfo struct {
} }
func getDistroInfo() DistroInfo { 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) var releaseMap = make(map[string]string)
if _, err := os.Stat("/etc/os-release"); err == nil { if _, err := os.Stat("/etc/os-release"); err == nil {
releaseMap, err = ReadKeyValueFile("/etc/os-release") releaseMap, err = ReadKeyValueFile("/etc/os-release")
if err != nil { if err != nil {
return DistroInfo{ return info
ID: "unknown",
LongName: "Unknown",
ShortName: "Unknown",
}
}
if value, ok := releaseMap["ID"]; ok {
distroID = value
} }
} }
if id, ok := releaseMap["ID"]; ok {
switch distroID { info.ID = id
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 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 { func getDistroAsciiArt() string {