68c4c06283739cc0c7f619172b35544e88921308

Author
Richard Pöttler <richard.poettler@gmail.com>
Committer
Marc Cornellà <marc.cornella@live.com>
Date

Message

extract: add RPM archive support (#8347)

Also more quiet extraction. -D for cpio was not used due to additional
output.

Diff

 1diff --git a/plugins/extract/README.md b/plugins/extract/README.md
 2index 83b878c3201ccf090df97a8eacd96394e5e8c946..41b6a61f15b36352df156debd365169706b93446 100644
 3--- a/plugins/extract/README.md
 4+++ b/plugins/extract/README.md
 5@@ -27,6 +27,7 @@ plugins=(... extract)
 6 | `jar`             | Java Archive                         |
 7 | `lzma`            | LZMA archive                         |
 8 | `rar`             | WinRAR archive                       |
 9+| `rpm`             | RPM package                          |
10 | `sublime-package` | Sublime Text package                 |
11 | `tar`             | Tarball                              |
12 | `tar.bz2`         | Tarball with bzip2 compression       |
13diff --git a/plugins/extract/_extract b/plugins/extract/_extract
14index 33d49fcc5ecc2fa3b1ed3d2a4118efee9899c3e8..0257ce2314000a9580e7e8edd8c7d673f163d445 100644
15--- a/plugins/extract/_extract
16+++ b/plugins/extract/_extract
17@@ -3,5 +3,5 @@
18 
19 _arguments \
20   '(-r --remove)'{-r,--remove}'[Remove archive.]' \
21-  "*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|deb|gz|ipsw|jar|lzma|rar|sublime-package|tar|tar.bz2|tar.gz|tar.xz|tar.zma|tbz|tbz2|tgz|tlz|txz|war|whl|xpi|xz|zip)(-.)'" \
22+  "*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|deb|gz|ipsw|jar|lzma|rar|rpm|sublime-package|tar|tar.bz2|tar.gz|tar.xz|tar.zma|tbz|tbz2|tgz|tlz|txz|war|whl|xpi|xz|zip)(-.)'" \
23     && return 0
24diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh
25index d3d847daf1f902b2e8a6a542ec9d365422d40f57..27b9e50f172a48667dd5c4a353d6ef02bd2ee7ae 100644
26--- a/plugins/extract/extract.plugin.zsh
27+++ b/plugins/extract/extract.plugin.zsh
28@@ -48,6 +48,7 @@ extract() {
29 			(*.z) uncompress "$1" ;;
30 			(*.zip|*.war|*.jar|*.sublime-package|*.ipsw|*.xpi|*.apk|*.aar|*.whl) unzip "$1" -d $extract_dir ;;
31 			(*.rar) unrar x -ad "$1" ;;
32+			(*.rpm) mkdir "$extract_dir" && cd "$extract_dir" && rpm2cpio "../$1" | cpio --quiet -id && cd .. ;;
33 			(*.7z) 7za x "$1" ;;
34 			(*.deb)
35 				mkdir -p "$extract_dir/control"