github.com/estesp/manifest-tool@v1.0.3/docker/util.go (about)

     1  package docker
     2  
     3  import "fmt"
     4  
     5  // list of valid os/arch values (see "Optional Environment Variables" section
     6  // of https://golang.org/doc/install/source
     7  // Added linux/s390x as we know System z support already exists
     8  
     9  var validOSArch = map[string]bool{
    10  	"darwin/386":      true,
    11  	"darwin/amd64":    true,
    12  	"darwin/arm":      true,
    13  	"darwin/arm64":    true,
    14  	"dragonfly/amd64": true,
    15  	"freebsd/386":     true,
    16  	"freebsd/amd64":   true,
    17  	"freebsd/arm":     true,
    18  	"linux/386":       true,
    19  	"linux/amd64":     true,
    20  	"linux/arm":       true,
    21  	"linux/arm/v5":    true,
    22  	"linux/arm/v6":    true,
    23  	"linux/arm/v7":    true,
    24  	"linux/arm64":     true,
    25  	"linux/arm64/v8":  true,
    26  	"linux/ppc64":     true,
    27  	"linux/ppc64le":   true,
    28  	"linux/mips64":    true,
    29  	"linux/mips64le":  true,
    30  	"linux/s390x":     true,
    31  	"netbsd/386":      true,
    32  	"netbsd/amd64":    true,
    33  	"netbsd/arm":      true,
    34  	"openbsd/386":     true,
    35  	"openbsd/amd64":   true,
    36  	"openbsd/arm":     true,
    37  	"plan9/386":       true,
    38  	"plan9/amd64":     true,
    39  	"solaris/amd64":   true,
    40  	"windows/386":     true,
    41  	"windows/amd64":   true,
    42  	"windows/arm":     true,
    43  }
    44  
    45  func isValidOSArch(os string, arch string, variant string) bool {
    46  	osarch := fmt.Sprintf("%s/%s", os, arch)
    47  
    48  	if variant != "" {
    49  		osarch = fmt.Sprintf("%s/%s/%s", os, arch, variant)
    50  	}
    51  
    52  	_, ok := validOSArch[osarch]
    53  	return ok
    54  }