diff options
author | Alexander Kapshuna <kapsh@kap.sh> | 2019-06-24 00:54:28 +0300 |
---|---|---|
committer | Marc Cornellà <hello@mcornella.com> | 2021-08-14 22:32:04 +0200 |
commit | 59a9b453d348baad4ff7b7cb2e1f205d615200e6 (patch) | |
tree | 4f219f2950c2f0112e5ec5726cf4160632748d2a | |
parent | 6dc937ff685fcbc43056dbd7fb05ba01c56dfd1a (diff) | |
download | zsh-59a9b453d348baad4ff7b7cb2e1f205d615200e6.tar.gz zsh-59a9b453d348baad4ff7b7cb2e1f205d615200e6.tar.bz2 zsh-59a9b453d348baad4ff7b7cb2e1f205d615200e6.zip |
fix(extract): support unpacking deb file from different directory
-rw-r--r-- | plugins/extract/extract.plugin.zsh | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh index 601272cac..e63b9494f 100644 --- a/plugins/extract/extract.plugin.zsh +++ b/plugins/extract/extract.plugin.zsh @@ -60,13 +60,13 @@ extract() { (*.rpm) mkdir "$extract_dir" && cd "$extract_dir" && rpm2cpio "../$1" | cpio --quiet -id && cd .. ;; (*.7z) 7za x "$1" ;; (*.deb) - mkdir -p "$extract_dir/control" - mkdir -p "$extract_dir/data" - cd "$extract_dir"; ar vx "../${1}" > /dev/null - cd control; tar xzvf ../control.tar.gz - cd ../data; extract ../data.tar.* - cd ..; rm *.tar.* debian-binary - cd .. + local pwd="$PWD" file="${1:A}" + mkdir -p "$extract_dir/control" "$extract_dir/data" + builtin cd -q "$extract_dir"; ar vx "$file" > /dev/null + builtin cd -q control; extract ../control.tar.* + builtin cd -q ../data; extract ../data.tar.* + builtin cd -q ..; command rm *.tar.* debian-binary + builtin cd -q "$pwd" ;; (*.zst) unzstd "$1" ;; (*.cab) cabextract -d "$extract_dir" "$1" ;; |