podman/pkg/machine/compression/config.go

42 lines
609 B
Go

package compression
import "strings"
type ImageCompression int64
const (
Xz ImageCompression = iota
Zip
Gz
Bz2
Zstd
)
func KindFromFile(path string) ImageCompression {
switch {
case strings.HasSuffix(path, Bz2.String()):
return Bz2
case strings.HasSuffix(path, Gz.String()):
return Gz
case strings.HasSuffix(path, Zip.String()):
return Zip
case strings.HasSuffix(path, Xz.String()):
return Xz
}
return Zstd
}
func (c ImageCompression) String() string {
switch c {
case Gz:
return "gz"
case Zip:
return "zip"
case Bz2:
return "bz2"
case Xz:
return "xz"
}
return "zst"
}