X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Farchival%2Funpack.sh;h=cffb90e2cf62079294579462a872727fb34428da;hb=c72b7521e60f5ca7d2873271767c7ff4fba09bf2;hp=89573aba768c6fce365912da3d918f35860d0b46;hpb=bec32148b61e15c5645a58a2eddee978f7658671;p=feisty_meow.git diff --git a/scripts/archival/unpack.sh b/scripts/archival/unpack.sh index 89573aba..cffb90e2 100644 --- a/scripts/archival/unpack.sh +++ b/scripts/archival/unpack.sh @@ -25,7 +25,8 @@ if [ ! -f "$archive_file" ]; then fi unpack_dir="$1"; shift if [ -z "$unpack_dir" ]; then - unpack_dir=$(echo from_$(basename $archive_file) | sed -e 's/^\([^\.]*\)\..*/\1/') + all_but_last="$(echo "$(basename "$archive_file")" | sed -e 's/\([\^.]*\)\.[^\.]*$/\1/')" + unpack_dir="arch_${all_but_last}" fi if [ ! -d "$unpack_dir" ]; then @@ -51,22 +52,26 @@ if [ ! -f "$archive_file" ]; then fi fi -if [[ $archive_file =~ .*\.tar$ \ - || $archive_file =~ .*\.tar\.gz$ \ - || $archive_file =~ .*\.tar\.bz2$ \ - || $archive_file =~ .*\.iar$ \ - || $archive_file =~ .*\.oar$ \ - || $archive_file =~ .*\.tgz$ \ - || $archive_file =~ .*\.ova$ \ +if [[ "$archive_file" =~ .*\.tar$ \ + || "$archive_file" =~ .*\.tar\.gz$ \ + || "$archive_file" =~ .*\.tar\.bz2$ \ + || "$archive_file" =~ .*\.iar$ \ + || "$archive_file" =~ .*\.oar$ \ + || "$archive_file" =~ .*\.tgz$ \ + || "$archive_file" =~ .*\.ova$ \ + || "$archive_file" =~ .*\.snarf$ \ ]]; then - tar -xf $archive_file &>/dev/null -elif [[ $archive_file =~ .*\.zip$ \ - || $archive_file =~ .*\.epub$ \ - || $archive_file =~ .*\.odt$ \ - || $archive_file =~ .*\.jar$ \ - || $archive_file =~ .*\.war$ \ + tar -xf "$archive_file" &>/dev/null +elif [[ "$archive_file" =~ .*\.zip$ \ + || "$archive_file" =~ .*\.epub$ \ + || "$archive_file" =~ .*\.odt$ \ + || "$archive_file" =~ .*\.jar$ \ + || "$archive_file" =~ .*\.war$ \ ]]; then - unzip $archive_file &>/dev/null + unzip "$archive_file" &>/dev/null +elif [[ "$archive_file" =~ .*\.7z$ \ + ]]; then + 7z x "$archive_file" &>/dev/null fi save_err=$? @@ -77,7 +82,7 @@ if [ $save_err -ne 0 ]; then echo "into the directory: $unpack_dir" exit 1 else - echo "Unpacked file $(basename $archive_file) into folder: $unpack_dir" + echo "Unpacked file $(basename "$archive_file") into folder: $unpack_dir" fi