github.com/Datadog/cnab-go@v0.3.3-beta1.0.20191007143216-bba4b7e723d0/driver/lookup/lookup.go (about) 1 package lookup 2 3 import ( 4 "fmt" 5 6 "github.com/deislabs/cnab-go/driver" 7 "github.com/deislabs/cnab-go/driver/command" 8 "github.com/deislabs/cnab-go/driver/docker" 9 "github.com/deislabs/cnab-go/driver/kubernetes" 10 ) 11 12 // Lookup takes a driver name and tries to resolve the most pertinent driver. 13 func Lookup(name string) (driver.Driver, error) { 14 switch name { 15 case "docker": 16 return &docker.Driver{}, nil 17 case "kubernetes", "k8s": 18 return &kubernetes.Driver{}, nil 19 case "debug": 20 return &driver.DebugDriver{}, nil 21 default: 22 cmddriver := &command.Driver{Name: name} 23 if cmddriver.CheckDriverExists() { 24 return cmddriver, nil 25 } 26 27 return nil, fmt.Errorf("unsupported driver or driver not found in PATH: %s", name) 28 } 29 }