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" ;;