From af6c1274c233cffdc27df5cbaf29fbafb92ba5bb Mon Sep 17 00:00:00 2001 From: Marin Ivanov Date: Thu, 11 Apr 2024 14:35:32 +0300 Subject: add --clean-path --- main.go | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'main.go') diff --git a/main.go b/main.go index 1fa87db..f65b88d 100644 --- a/main.go +++ b/main.go @@ -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 { -- cgit v1.2.3