github.com/pdmccormick/importable-docker-buildx@v0.0.0-20240426161518-e47091289030/driver/remote/util/endpoint.go (about)

     1  package remote
     2  
     3  import (
     4  	"net/url"
     5  
     6  	"github.com/pkg/errors"
     7  )
     8  
     9  var schemes = map[string]struct{}{
    10  	"tcp":              {},
    11  	"unix":             {},
    12  	"ssh":              {},
    13  	"docker-container": {},
    14  	"kube-pod":         {},
    15  	"npipe":            {},
    16  }
    17  
    18  func IsValidEndpoint(ep string) error {
    19  	endpoint, err := url.Parse(ep)
    20  	if err != nil {
    21  		return errors.Wrapf(err, "failed to parse endpoint %s", ep)
    22  	}
    23  	if _, ok := schemes[endpoint.Scheme]; !ok {
    24  		return errors.Errorf("unrecognized url scheme %s", endpoint.Scheme)
    25  	}
    26  	return nil
    27  }