aboutsummaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go13
1 files changed, 10 insertions, 3 deletions
diff --git a/main.go b/main.go
index f65b88d..89dba8d 100644
--- a/main.go
+++ b/main.go
@@ -2,11 +2,13 @@ package main
import (
"archive/tar"
+ "bufio"
"io"
"log"
"os"
"path"
+ "github.com/klauspost/readahead"
flag "github.com/spf13/pflag"
)
@@ -32,14 +34,19 @@ func main() {
}
func process(params processParams, logger *Logger) error {
- tr := tar.NewReader(os.Stdin)
- tw := tar.NewWriter(os.Stdout)
+ in := readahead.NewReader(os.Stdin)
+ defer in.Close()
+ out := bufio.NewWriter(os.Stdout)
+ defer out.Flush()
+
+ tr := tar.NewReader(in)
+ tw := tar.NewWriter(out)
defer tw.Close()
for {
hdr, err := tr.Next()
if err == io.EOF {
if params.concatenate {
- tr = tar.NewReader(os.Stdin)
+ tr = tar.NewReader(in)
hdr, err = tr.Next()
if err == io.EOF {
break