diff --git a/winehelper b/winehelper index 268e17a..49986cb 100755 --- a/winehelper +++ b/winehelper @@ -228,18 +228,20 @@ create_new_dir () { unpack () { print_info "Запуск распаковки архива $1" + local command outarg case $1 in - *.tar.xz) local command="tar -Jxhf";; - *.tar.gz) local command="tar -xhzf" ;; - *.tar.zst) local command="tar -I zstd -xhf" ;; - *.tar) local command="tar -xhf" ;; + *.tar.xz) command="tar -Jxhf" ; outarg="-C " ;; + *.tar.gz) command="tar -xhzf" ; outarg="-C " ;; + *.tar.zst) command="tar -I zstd -xhf" ; outarg="-C " ;; + *.tar) command="tar -xhf" ; outarg="-C " ;; + *.zip|*.exe) command="7z x -y" ; outarg="-o" ;; esac create_new_dir "$2" - if $command "$1" -C "$2" ; then - print_ok "Архив $1 распакован." + if $command "$1" ${outarg}"$2" ; then + print_ok "Файл $1 распакован." return 0 else - print_error "Распаковать архив $1 не удалось!" + print_error "Распаковать файл $1 не удалось!" return 1 fi }