diff options
| -rw-r--r-- | main.go | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -5,6 +5,7 @@ import ( "io" "log" "os" + "path" flag "github.com/spf13/pflag" ) @@ -12,6 +13,7 @@ import ( type processParams struct { prefix string concatenate bool + cleanPath bool } func main() { @@ -20,6 +22,7 @@ func main() { flag.CountVarP(&verbose, "verbose", "v", "add verbosity") flag.StringVarP(¶ms.prefix, "prefix", "p", "", "adds prefix to filenames") flag.BoolVarP(¶ms.concatenate, "concatenate", "c", false, "concatenate tar archives") + flag.BoolVarP(¶ms.cleanPath, "clean-path", "", false, "clean tar entry path") flag.Parse() logger := NewLogger(LevelEnum(verbose) + 2) @@ -51,6 +54,9 @@ func process(params processParams, logger *Logger) error { } logger.Infof(`TarEntry.name = %s`, hdr.Name) + if params.cleanPath { + hdr.Name = path.Clean("/" + hdr.Name)[1:] + } hdr.Name = params.prefix + hdr.Name if err = tw.WriteHeader(hdr); err != nil { |
