aboutsummaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorMarin Ivanov <[email protected]>2024-04-11 14:35:32 +0300
committerMarin Ivanov <[email protected]>2024-04-11 14:35:32 +0300
commitaf6c1274c233cffdc27df5cbaf29fbafb92ba5bb (patch)
tree5147a9b0af4fbbcf6da07f732b2b550c6e9f7897 /main.go
parentca06e0c6cfb104244d7ff2736fe481b7247fa187 (diff)
add --clean-path
Diffstat (limited to 'main.go')
-rw-r--r--main.go6
1 files changed, 6 insertions, 0 deletions
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(&params.prefix, "prefix", "p", "", "adds prefix to filenames")
flag.BoolVarP(&params.concatenate, "concatenate", "c", false, "concatenate tar archives")
+ flag.BoolVarP(&params.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 {