package main import ( "fmt" "github.com/osbuild/images/pkg/distro" ) var distroGetHostDistroName = distro.GetHostDistroName // findDistro will ensure that the given distro argument do not // diverge. If no distro is set via the blueprint or the argument // the host is used to derive the distro. func findDistro(argDistroName, bpDistroName string) (string, error) { switch { case argDistroName != "" && bpDistroName != "" && argDistroName != bpDistroName: return "", fmt.Errorf("error selecting distro name, cmdline argument %q is different from blueprint %q", argDistroName, bpDistroName) case argDistroName != "": return argDistroName, nil case bpDistroName != "": return bpDistroName, nil } // nothing selected by the user, derive from host distroStr, err := distroGetHostDistroName() if err != nil { return "", fmt.Errorf("error deriving host distro %w", err) } fmt.Fprintf(osStderr, "No distro name specified, selecting %q based on host, use --distro to override\n", distroStr) return distroStr, nil }