summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXeonacid <h.dwwwwww@gmail.com>2021-06-09 19:29:04 +0800
committerMarc Cornellà <hello@mcornella.com>2021-08-14 22:32:05 +0200
commit0b506fea0c9aeb450db6fdaba572041fd900c05b (patch)
tree7bbcca6206947e80d161985f2318e807e345eabe
parent59a9b453d348baad4ff7b7cb2e1f205d615200e6 (diff)
downloadzsh-0b506fea0c9aeb450db6fdaba572041fd900c05b.tar.gz
zsh-0b506fea0c9aeb450db6fdaba572041fd900c05b.tar.bz2
zsh-0b506fea0c9aeb450db6fdaba572041fd900c05b.zip
feat(extract): add cpio support
-rw-r--r--plugins/extract/README.md1
-rw-r--r--plugins/extract/_extract2
-rw-r--r--plugins/extract/extract.plugin.zsh1
3 files changed, 3 insertions, 1 deletions
diff --git a/plugins/extract/README.md b/plugins/extract/README.md
index 1dd8e19c0..44f0b05a1 100644
--- a/plugins/extract/README.md
+++ b/plugins/extract/README.md
@@ -22,6 +22,7 @@ plugins=(... extract)
| `aar` | Android library file |
| `bz2` | Bzip2 file |
| `cab` | Microsoft cabinet archive |
+| `cpio` | Cpio archive |
| `deb` | Debian package |
| `ear` | Enterprise Application aRchive |
| `gz` | Gzip file |
diff --git a/plugins/extract/_extract b/plugins/extract/_extract
index 31a7facbe..27b099c9e 100644
--- a/plugins/extract/_extract
+++ b/plugins/extract/_extract
@@ -3,5 +3,5 @@
_arguments \
'(-r --remove)'{-r,--remove}'[Remove archive.]' \
- "*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|cab|deb|ear|gz|ipa|ipsw|jar|lrz|lz4|lzma|rar|rpm|sublime-package|tar|tar.bz2|tar.gz|tar.lrz|tar.lz|tar.lz4|tar.xz|tar.zma|tar.zst|tbz|tbz2|tgz|tlz|txz|tzst|war|whl|xpi|xz|zip|zst)(-.)'" \
+ "*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|cab|cpio|deb|ear|gz|ipa|ipsw|jar|lrz|lz4|lzma|rar|rpm|sublime-package|tar|tar.bz2|tar.gz|tar.lrz|tar.lz|tar.lz4|tar.xz|tar.zma|tar.zst|tbz|tbz2|tgz|tlz|txz|tzst|war|whl|xpi|xz|zip|zst)(-.)'" \
&& return 0
diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh
index e63b9494f..ac181fa78 100644
--- a/plugins/extract/extract.plugin.zsh
+++ b/plugins/extract/extract.plugin.zsh
@@ -70,6 +70,7 @@ extract() {
;;
(*.zst) unzstd "$1" ;;
(*.cab) cabextract -d "$extract_dir" "$1" ;;
+ (*.cpio) cpio -idmvF "$1" ;;
(*)
echo "extract: '$1' cannot be extracted" >&2
success=1