aboutsummaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorMarin Ivanov <[email protected]>2024-04-06 23:09:33 +0300
committerMarin Ivanov <[email protected]>2024-04-06 23:09:33 +0300
commit280eef3e448eb6900db134e7f466e95e3061d240 (patch)
tree43a02c944419fc613f921b78754ed849bb173abd /main.go
parentfae24c8056d5a97dd906238cd7d8c7e407094b3c (diff)
add concatenate
Diffstat (limited to 'main.go')
-rw-r--r--main.go18
1 files 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
}