github.com/containers/podman/v4@v4.9.4/pkg/machine/compression/config.go (about)

     1  package compression
     2  
     3  import "strings"
     4  
     5  type ImageCompression int64
     6  
     7  const (
     8  	Xz ImageCompression = iota
     9  	Zip
    10  	Gz
    11  	Bz2
    12  )
    13  
    14  func KindFromFile(path string) ImageCompression {
    15  	switch {
    16  	case strings.HasSuffix(path, Bz2.String()):
    17  		return Bz2
    18  	case strings.HasSuffix(path, Gz.String()):
    19  		return Gz
    20  	case strings.HasSuffix(path, Zip.String()):
    21  		return Zip
    22  	}
    23  	return Xz
    24  }
    25  
    26  func (c ImageCompression) String() string {
    27  	switch c {
    28  	case Gz:
    29  		return "gz"
    30  	case Zip:
    31  		return "zip"
    32  	case Bz2:
    33  		return "bz2"
    34  	}
    35  	return "xz"
    36  }