@@ -29,6 +29,7 @@ func DetectCompressionFile(f io.Reader) ([]string, string, []string, error) {
29
29
// lzma - 6 bytes, { [0x000, 0xE0], '7', 'z', 'X', 'Z', 0x00 } -
30
30
// xz - 6 bytes, header format { 0xFD, '7', 'z', 'X', 'Z', 0x00 }
31
31
// tar - 263 bytes, trying to get ustar from 257 - 262
32
+ // lz4 - 4 bytes 0x04 0x22 0x4d 0x18, magic number
32
33
header := make ([]byte , 263 )
33
34
_ , err := f .Read (header )
34
35
if err != nil {
@@ -56,6 +57,8 @@ func DetectCompressionFile(f io.Reader) ([]string, string, []string, error) {
56
57
return []string {"" }, ".vmdk" , []string {"qemu-img" , "convert" , "-O" , "raw" }, nil
57
58
case bytes .Equal (header [0 :4 ], []byte {0x28 , 0xb5 , 0x2f , 0xfd }):
58
59
return []string {"--zstd" , "-xf" }, ".tar.zst" , []string {"zstd" , "-d" }, nil
60
+ case bytes .Equal (header [0 :4 ], []byte {0x04 , 0x22 , 0x4d , 0x18 }):
61
+ return []string {"-Ilz4" , "-xf" }, ".tar.lz4" , []string {"lz4" , "-d" }, nil
59
62
default :
60
63
return nil , "" , nil , fmt .Errorf ("Unsupported compression" )
61
64
}
0 commit comments