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"