penguin/monok8s

k8s image for Mono Gateway Dev Kit

clitools/pkg/node/uboot/bootenvconfig.go

raw ยท 802 bytes

package uboot

import (
	"fmt"
	"strings"
)

func (c BootEnvConfig) Validate() error {
	switch c.BootSource {
	case "usb", "emmc":
	default:
		return fmt.Errorf("invalid boot source %q", c.BootSource)
	}

	switch c.BootPart {
	case "A", "B":
	default:
		return fmt.Errorf("invalid boot part %q", c.BootPart)
	}

	return nil
}

func (c BootEnvConfig) bootCmdOrDefault() string {
	if s := strings.TrimSpace(c.BootCmd); s != "" {
		return s
	}
	return compactUBootScript(defaultBootCmdTemplate)
}

func compactUBootScript(s string) string {
	lines := strings.Split(s, "\n")
	out := make([]string, 0, len(lines))

	for _, line := range lines {
		line = strings.TrimSpace(line)
		if line == "" || strings.HasPrefix(line, "#") {
			continue
		}
		out = append(out, line)
	}

	return strings.Join(out, " ")
}