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, " ") }