diff --git a/unityextract b/unityextract index 72d7ceb..59f1a3c 100755 --- a/unityextract +++ b/unityextract @@ -1,7 +1,14 @@ #!/bin/sh set -euf +set -x tmp="$(mktemp -d)" tar -x -C "$tmp" -f "$1" -find "$tmp" -name 'asset' -exec sh -c 'SRC="$1"; DESTFILE="$(cat "${SRC%/*}/pathname")"; mkdir -p "UNITYEXTRACT/${DESTFILE%/*}"; mv "$SRC" "UNITYEXTRACT/$DESTFILE"' sh {} \; +find "$tmp" -name 'asset' -exec sh -c ' + SRC="$1" + DESTFILE="$(cat "${SRC%/*}/pathname" | sed -E -e '\''s,^\.\./,,'\'' -e '\''s,/\.\./,/,g'\'')" + echo "$DESTFILE" + mkdir -p "UNITYEXTRACT/${DESTFILE%/*}" + mv -i "$SRC" "UNITYEXTRACT/$DESTFILE" + ' sh {} \; rm -rf "$tmp"