Summary Files Commits Branches @commit @diff @stats
path: root / scripts / unarchive
diff options
context:
space:
mode:
Commitc845e01ec7e950196bfa5038163ac28ac342568a (patch)
Author
 Syndamia <kamen@syndamia.com>
2026-11-08 20:10:41 +0200
Committer
 Syndamia <kamen@syndamia.com>
2026-11-08 20:14:36 +0200
Files19617930f9ae9c37321141b9c050f5972c44696e /scripts/unarchive
cli-c845e01ec7e950196bfa5038163ac28ac342568a.tar
cli-c845e01ec7e950196bfa5038163ac28ac342568a.tar.gz
cli-c845e01ec7e950196bfa5038163ac28ac342568a.zip
Parentb971cf9ba7a8c4e981be7dfe4d26258e32e6d99c (diff)
fix(scripts): Normalise bad file path in archive scripts
1 files changed, 12 insertions, 3 deletions
-rwxr-xr-xscripts/unarchive15
diff --git a/scripts/unarchive b/scripts/unarchive
index 7004888..4e12859 100755
--- a/scripts/unarchive
+++ b/scripts/unarchive
@@ -7,7 +7,7 @@ then
set "$REPLY"
fi
-set "$(echo -e "a\n$1\n.\n1s|\.\+/||g\n1s|/\+|/|g\n1p\nQ" | ed -sqr | tail -1)"
+set "$(echo -e "a\n$1/\n.\n1s|\.\+/||g\n1s|/\+|/|g\n1p\nQ" | ed -sqr | tail -1)"
if [ ! -d "$1" ]
then
@@ -15,11 +15,20 @@ then
exit 1
fi
+set "${1%%/objects/*}"
+set "${1%%/refs/*}"
+
__rec_ro() {
while read -r f
do
- chwrite +w "$1/$f"
- [ -d "$1/$f" ] && __rec_ro "$1/$f"
+ if [ -n "$f" ]
+ then
+ chwrite +w "$1/$f"
+ if [ -d "$1/$f" ]
+ then
+ __rec_ro "$1/$f"
+ fi
+ fi
done <<FILES
$(ls -A1 "$1")
FILES