dive-zfs/dive/get_image_handler.go
2019-10-03 10:47:38 -04:00

45 lines
858 B
Go

package dive
import (
"fmt"
"github.com/wagoodman/dive/dive/image"
"github.com/wagoodman/dive/dive/image/docker"
"github.com/wagoodman/dive/dive/image/podman"
)
type Engine int
const (
EngineUnknown Engine = iota
EngineDocker
EnginePodman
)
func (engine Engine) String() string {
return [...]string{"unknown", "docker", "podman"}[engine]
}
var AllowedEngines = []string{EngineDocker.String(), EnginePodman.String()}
func GetEngine(engine string) Engine {
switch engine {
case "docker":
return EngineDocker
case "podman":
return EnginePodman
default:
return EngineUnknown
}
}
func GetImageHandler(engine Engine) (image.Resolver, error) {
switch engine {
case EngineDocker:
return docker.NewResolver(), nil
case EnginePodman:
return podman.NewResolver(), nil
}
return nil, fmt.Errorf("unable to determine image provider")
}