59a9b453d348baad4ff7b7cb2e1f205d615200e6
- Author
- Alexander Kapshuna <kapsh@kap.sh>
- Committer
- Marc Cornellà <hello@mcornella.com>
- Date
Message
fix(extract): support unpacking deb file from different directory
Diff
1diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh
2index 601272cac18495135af20a86f689d0354e560fdb..e63b9494fdfd8c7ec81c5b327b7dab6cfb75d0ad 100644
3--- a/plugins/extract/extract.plugin.zsh
4+++ b/plugins/extract/extract.plugin.zsh
5@@ -60,13 +60,13 @@ extract() {
6 (*.rpm) mkdir "$extract_dir" && cd "$extract_dir" && rpm2cpio "../$1" | cpio --quiet -id && cd .. ;;
7 (*.7z) 7za x "$1" ;;
8 (*.deb)
9- mkdir -p "$extract_dir/control"
10- mkdir -p "$extract_dir/data"
11- cd "$extract_dir"; ar vx "../${1}" > /dev/null
12- cd control; tar xzvf ../control.tar.gz
13- cd ../data; extract ../data.tar.*
14- cd ..; rm *.tar.* debian-binary
15- cd ..
16+ local pwd="$PWD" file="${1:A}"
17+ mkdir -p "$extract_dir/control" "$extract_dir/data"
18+ builtin cd -q "$extract_dir"; ar vx "$file" > /dev/null
19+ builtin cd -q control; extract ../control.tar.*
20+ builtin cd -q ../data; extract ../data.tar.*
21+ builtin cd -q ..; command rm *.tar.* debian-binary
22+ builtin cd -q "$pwd"
23 ;;
24 (*.zst) unzstd "$1" ;;
25 (*.cab) cabextract -d "$extract_dir" "$1" ;;