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  }