diff options
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 22 |
1 files changed, 14 insertions, 8 deletions
@@ -18,20 +18,29 @@ func main() { flag.BoolVarP(&concatenate, "concatenate", "c", false, "concatenate tar archives") flag.Parse() - if err := process(prefix, concatenate, verbose); err != nil { + logger := NewLogger(LevelEnum(verbose) + 2) + params := processParams{ + prefix: prefix, + concatenate: concatenate, + } + if err := process(params, logger); err != nil { log.Fatal(err) } +} +type processParams struct { + prefix string + concatenate bool } -func process(prefix string, concatenate bool, verbose int) error { +func process(params processParams, logger *Logger) error { tr := tar.NewReader(os.Stdin) tw := tar.NewWriter(os.Stdout) defer tw.Close() for { hdr, err := tr.Next() if err == io.EOF { - if !concatenate { + if params.concatenate { tr = tar.NewReader(os.Stdin) hdr, err = tr.Next() if err == io.EOF { @@ -46,11 +55,8 @@ func process(prefix string, concatenate bool, verbose int) error { return err } - if verbose >= 1 { - log.Printf("file: %s", hdr.Name) - } - - hdr.Name = prefix + hdr.Name + logger.Infof(`TarEntry.name = %s`, hdr.Name) + hdr.Name = params.prefix + hdr.Name if err = tw.WriteHeader(hdr); err != nil { return err |
