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) {
|
func detectKairos(r *Runtime) {
|
||||||
k := &Kairos{}
|
k := &Kairos{}
|
||||||
flavor, err := utils.OSRelease("FLAVOR")
|
k.Flavor = utils.Flavor()
|
||||||
if err == nil {
|
|
||||||
k.Flavor = flavor
|
|
||||||
}
|
|
||||||
v, err := utils.OSRelease("VERSION")
|
v, err := utils.OSRelease("VERSION")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
k.Version = v
|
k.Version = v
|
||||||
|
@@ -55,10 +55,15 @@ func OSRelease(key string) (string, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
v, exists := release[key]
|
kairosKey := "KAIROS_" + key
|
||||||
|
v, exists := release[kairosKey]
|
||||||
|
if !exists {
|
||||||
|
// We try with the old naming without the prefix in case the key wasn't found
|
||||||
|
v, exists = release[key]
|
||||||
if !exists {
|
if !exists {
|
||||||
return "", fmt.Errorf("key not found")
|
return "", fmt.Errorf("key not found")
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return v, nil
|
return v, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,14 +101,26 @@ func WriteEnv(envFile string, config map[string]string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Flavor() string {
|
func Flavor() string {
|
||||||
release, _ := godotenv.Read("/etc/os-release")
|
v, err := OSRelease("FLAVOR")
|
||||||
v := release["NAME"]
|
if err != nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
|
func Name() string {
|
||||||
|
v, err := OSRelease("NAME")
|
||||||
|
if err != nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
return strings.ReplaceAll(v, "kairos-", "")
|
return strings.ReplaceAll(v, "kairos-", "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func IsOpenRCBased() bool {
|
func IsOpenRCBased() bool {
|
||||||
f := Flavor()
|
n := Name()
|
||||||
return strings.Contains(f, "alpine")
|
return strings.Contains(n, "alpine")
|
||||||
}
|
}
|
||||||
|
|
||||||
func ShellSTDIN(s, c string) (string, error) {
|
func ShellSTDIN(s, c string) (string, error) {
|
||||||
@@ -180,8 +197,10 @@ func PowerOFF() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Version() string {
|
func Version() string {
|
||||||
release, _ := godotenv.Read("/etc/os-release")
|
v, err := OSRelease("VERSION")
|
||||||
v := release["VERSION"]
|
if err != nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
v = strings.ReplaceAll(v, "+k3s1-Kairos", "-")
|
v = strings.ReplaceAll(v, "+k3s1-Kairos", "-")
|
||||||
v = strings.ReplaceAll(v, "+k3s-Kairos", "-")
|
v = strings.ReplaceAll(v, "+k3s-Kairos", "-")
|
||||||
return strings.ReplaceAll(v, "Kairos", "")
|
return strings.ReplaceAll(v, "Kairos", "")
|
||||||
|
Reference in New Issue
Block a user