diff options
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 13 |
1 files changed, 10 insertions, 3 deletions
@@ -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 |
