several improvements

- drop vfs
 - less hardcoded stuff, use the runtime status
 - Remove things that syscalls dont understand (defaults, auto)

Signed-off-by: Itxaka <itxaka@spectrocloud.com>
This commit is contained in:
Itxaka
2023-02-06 16:20:18 +01:00
parent fcdc2f28b6
commit f98954367f
7 changed files with 125 additions and 39 deletions

View File

@@ -2,10 +2,11 @@ package utils
import (
"github.com/kairos-io/kairos/sdk/state"
"github.com/twpayne/go-vfs"
"os"
"strings"
)
func BootedFromCD(fs vfs.FS) (bool, error) {
func BootedFromCD() (bool, error) {
runtime, err := state.NewRuntime()
if err != nil {
return false, err
@@ -13,3 +14,48 @@ func BootedFromCD(fs vfs.FS) (bool, error) {
return runtime.BootState == state.LiveCD, nil
}
func BootStateToLabel() string {
runtime, err := state.NewRuntime()
if err != nil {
return ""
}
switch runtime.BootState {
case "active_boot":
return "COS_ACTIVE"
case "passive_boot":
return "COS_PASSIVE"
case "recovery_boot":
return "COS_RECOVERY"
default:
return ""
}
}
func BootStateToImage() string {
runtime, err := state.NewRuntime()
if err != nil {
return ""
}
switch runtime.BootState {
case "active_boot":
return "/cOS/active.img"
case "passive_boot":
return "/cOS/passive.img"
case "recovery_boot":
return "/recovery.img"
default:
return ""
}
}
func GetRootDir() string {
cmdline, _ := os.ReadFile("/proc/cmdline")
switch {
case strings.Contains(string(cmdline), "IMMUCORE_NOPIVOT"):
return "/"
default:
// Default is sysroot for normal no-pivot boot
return "/sysroot"
}
}