diff options
| author | Marin Ivanov <[email protected]> | 2024-04-06 23:09:33 +0300 |
|---|---|---|
| committer | Marin Ivanov <[email protected]> | 2024-04-06 23:09:33 +0300 |
| commit | 280eef3e448eb6900db134e7f466e95e3061d240 (patch) | |
| tree | 43a02c944419fc613f921b78754ed849bb173abd | |
| parent | fae24c8056d5a97dd906238cd7d8c7e407094b3c (diff) | |
add concatenate
| -rw-r--r-- | main.go | 18 |
1 files changed, 15 insertions, 3 deletions
@@ -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 } |
