🌱 Read os-release attributes using kairos prefix (#12)

* Read os-release attributes using kairos prefix

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Refactor other functions to use OSRelease

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Misc refactoring

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

---------

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
This commit is contained in:
Mauro Morales
2023-04-14 11:40:28 +02:00
committed by GitHub
parent 77ed7ba298
commit 0c9d2bd9e6
2 changed files with 29 additions and 12 deletions

View File

@@ -154,10 +154,8 @@ func detectSystem(r *Runtime) {
func detectKairos(r *Runtime) {
k := &Kairos{}
flavor, err := utils.OSRelease("FLAVOR")
if err == nil {
k.Flavor = flavor
}
k.Flavor = utils.Flavor()
v, err := utils.OSRelease("VERSION")
if err == nil {
k.Version = v

View File

@@ -55,9 +55,14 @@ func OSRelease(key string) (string, error) {
if err != nil {
return "", err
}
v, exists := release[key]
kairosKey := "KAIROS_" + key
v, exists := release[kairosKey]
if !exists {
return "", fmt.Errorf("key not found")
// We try with the old naming without the prefix in case the key wasn't found
v, exists = release[key]
if !exists {
return "", fmt.Errorf("key not found")
}
}
return v, nil
}
@@ -96,14 +101,26 @@ func WriteEnv(envFile string, config map[string]string) error {
}
func Flavor() string {
release, _ := godotenv.Read("/etc/os-release")
v := release["NAME"]
v, err := OSRelease("FLAVOR")
if err != nil {
return ""
}
return v
}
func Name() string {
v, err := OSRelease("NAME")
if err != nil {
return ""
}
return strings.ReplaceAll(v, "kairos-", "")
}
func IsOpenRCBased() bool {
f := Flavor()
return strings.Contains(f, "alpine")
n := Name()
return strings.Contains(n, "alpine")
}
func ShellSTDIN(s, c string) (string, error) {
@@ -180,8 +197,10 @@ func PowerOFF() {
}
func Version() string {
release, _ := godotenv.Read("/etc/os-release")
v := release["VERSION"]
v, err := OSRelease("VERSION")
if err != nil {
return ""
}
v = strings.ReplaceAll(v, "+k3s1-Kairos", "-")
v = strings.ReplaceAll(v, "+k3s-Kairos", "-")
return strings.ReplaceAll(v, "Kairos", "")