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