[PATCH 05/20] scripts/make-erofs.sh: Avoid unneeded calls to dirname

Demi Marie Obenour
2025-09-04T23:47:57Z

Use builtin string manipulation instead.

Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
---
scripts/make-erofs.sh | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/scripts/make-erofs.sh b/scripts/make-erofs.sh
index cf942972910c76e1835dc5b0084c2d04bf084a9d..93cb3245f409b24c24be05e9307a1b2e12c867fe 100755
--- a/scripts/make-erofs.sh
+++ b/scripts/make-erofs.sh
@@ -78,7 +78,19 @@ while read -r arg1; do

check_path "$arg1" "$arg2"

- parent=$(dirname "$arg2")
+ # The below simple version of dirname(1) can only handle
+ # a subset of all paths, but this subset includes all of
+ # the paths that check_path doesn't reject.
+ case $arg2 in
+ (*/*)
+ # Create the parent directory if it doesn't already
+ # exist.
+ parent=${arg2%/*}
+ ;;
+ (*)
+ parent=.
+ ;;
+ esac
mkdir -p -- "$root/$parent"
cp -RT -- "$arg1" "$root/$arg2"
done

--
2.51.0