diff --git a/distroless/private/flatten.sh b/distroless/private/flatten.sh index 25b6762..678c2b5 100755 --- a/distroless/private/flatten.sh +++ b/distroless/private/flatten.sh @@ -37,9 +37,11 @@ if [[ "$deduplicate" == "True" ]]; then $bsdtar --confirmation "$@" 2< <("${awk}" ' function normalize(p) { - # Strip leading "./" and trailing "/" so that "./etc/" and "etc/" are treated as the same path. - sub(/^\.\//, "", p) + # Strip trailing "/" and add leading "./" so that "./etc/" and "etc/" are treated as the same path. sub(/\/$/, "", p) + if (p !~ /^\.\// && p !~ /^\//) { + p = "./" p + } return p } { diff --git a/examples/flatten/BUILD.bazel b/examples/flatten/BUILD.bazel index a4dbfca..4a0eae0 100644 --- a/examples/flatten/BUILD.bazel +++ b/examples/flatten/BUILD.bazel @@ -146,8 +146,8 @@ flatten( name = "flatten_dedup_normalize", deduplicate = True, tars = [ - ":dotslash_tar", ":nodotslash_tar", + ":dotslash_tar", ], ) @@ -155,7 +155,7 @@ assert_tar_listing( name = "test_flatten_dedup_normalize", actual = "flatten_dedup_normalize", expected = """\ -etc/ -etc/sub/ +./etc/ +./etc/sub/ """, )