From 280eef3e448eb6900db134e7f466e95e3061d240 Mon Sep 17 00:00:00 2001 From: Marin Ivanov Date: Sat, 6 Apr 2024 23:09:33 +0300 Subject: add concatenate --- main.go | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index d880612..a72bb5b 100644 --- a/main.go +++ b/main.go @@ -12,24 +12,36 @@ import ( func main() { var prefix string var verbose int + var concatenate bool flag.CountVarP(&verbose, "verbose", "v", "add verbosity") flag.StringVarP(&prefix, "prefix", "p", "", "adds prefix to filenames") + flag.BoolVarP(&concatenate, "concatenate", "c", false, "concatenate tar archives") flag.Parse() - if err := process(prefix, verbose); err != nil { + if err := process(prefix, concatenate, verbose); err != nil { log.Fatal(err) } } -func process(prefix string, verbose int) error { +func process(prefix string, concatenate bool, verbose int) error { tr := tar.NewReader(os.Stdin) tw := tar.NewWriter(os.Stdout) defer tw.Close() for { hdr, err := tr.Next() if err == io.EOF { - break + if !concatenate { + tr = tar.NewReader(os.Stdin) + hdr, err = tr.Next() + if err == io.EOF { + break + } else if err != nil { + return err + } + } else { + break + } } else if err != nil { return err } -- cgit v1.2.3