From 2533a509cedb6b735d6c042f1f1406440df0cb88 Mon Sep 17 00:00:00 2001 From: Jonathan Wilkins Date: Sun, 12 May 2019 16:59:47 -0700 Subject: [PATCH] support zstd compression --- sift.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sift.go b/sift.go index 658d1cab..0aa1d660 100644 --- a/sift.go +++ b/sift.go @@ -34,6 +34,7 @@ import ( "github.com/svent/go-flags" "github.com/svent/go-nbreader" "github.com/svent/sift/gitignore" + "github.com/Datadog/zstd" "golang.org/x/crypto/ssh/terminal" ) @@ -424,6 +425,14 @@ func processFileTargets() { infile.Seek(0, 0) reader = infile } + } else if options.Zip && strings.HasSuffix(filepath, ".zst") { + rawReader := infile + reader = zstd.NewReader(rawReader) + if err != nil { + errorLogger.Printf("error decompressing file '%s', opening as normal file\n", infile.Name()) + infile.Seek(0, 0) + reader = infile + } } else if infile == os.Stdin && options.Multiline { reader = nbreader.NewNBReader(infile, InputBlockSize, nbreader.ChunkTimeout(MultilinePipeChunkTimeout), nbreader.Timeout(MultilinePipeTimeout))