mirror of
https://github.com/kairos-io/kairos-sdk.git
synced 2025-09-02 15:54:25 +00:00
🌱 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:
@@ -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
|
||||
|
@@ -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", "")
|
||||
|
Reference in New Issue
Block a user