diff options
| Commit | c845e01ec7e950196bfa5038163ac28ac342568a (patch) | |
|---|---|---|
| Author | 2026-11-08 20:10:41 +0200 | |
| Committer | 2026-11-08 20:14:36 +0200 | |
| Files | 19617930f9ae9c37321141b9c050f5972c44696e /scripts/unarchive | |
| cli-c845e01ec7e950196bfa5038163ac28ac342568a.tar cli-c845e01ec7e950196bfa5038163ac28ac342568a.tar.gz cli-c845e01ec7e950196bfa5038163ac28ac342568a.zip | ||
| Parent | b971cf9ba7a8c4e981be7dfe4d26258e32e6d99c (diff) | |
fix(scripts): Normalise bad file path in archive scripts
1 files changed, 12 insertions, 3 deletions
| -rwxr-xr-x | scripts/unarchive | 15 |
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 |
