package miner import ( "os/exec" "strings" ) // DetectContainerRuntime probes docker then podman CLIs. func DetectContainerRuntime() ContainerRuntimeInfo { for _, cli := range []string{"docker", "podman"} { if path, err := exec.LookPath(cli); err == nil { out, runErr := exec.Command(path, "version", "--format", "{{.Server.Version}}").CombinedOutput() version := strings.TrimSpace(string(out)) if runErr != nil || version == "" { // Older docker without --format still counts as available. if _, verErr := exec.Command(path, "version").CombinedOutput(); verErr == nil { return ContainerRuntimeInfo{Available: true, CLI: cli, Version: "unknown"} } continue } return ContainerRuntimeInfo{Available: true, CLI: cli, Version: version} } } return ContainerRuntimeInfo{} }