feat(extract): add cpio support

This commit is contained in:
Xeonacid 2021-06-09 19:29:04 +08:00 committed by Marc Cornellà
parent 59a9b453d3
commit 0b506fea0c
No known key found for this signature in database
GPG key ID: 0314585E776A9C1B
3 changed files with 3 additions and 1 deletions

View file

@ -22,6 +22,7 @@ plugins=(... extract)
| `aar` | Android library file | | `aar` | Android library file |
| `bz2` | Bzip2 file | | `bz2` | Bzip2 file |
| `cab` | Microsoft cabinet archive | | `cab` | Microsoft cabinet archive |
| `cpio` | Cpio archive |
| `deb` | Debian package | | `deb` | Debian package |
| `ear` | Enterprise Application aRchive | | `ear` | Enterprise Application aRchive |
| `gz` | Gzip file | | `gz` | Gzip file |

View file

@ -3,5 +3,5 @@
_arguments \ _arguments \
'(-r --remove)'{-r,--remove}'[Remove archive.]' \ '(-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 && return 0

View file

@ -70,6 +70,7 @@ extract() {
;; ;;
(*.zst) unzstd "$1" ;; (*.zst) unzstd "$1" ;;
(*.cab) cabextract -d "$extract_dir" "$1" ;; (*.cab) cabextract -d "$extract_dir" "$1" ;;
(*.cpio) cpio -idmvF "$1" ;;
(*) (*)
echo "extract: '$1' cannot be extracted" >&2 echo "extract: '$1' cannot be extracted" >&2
success=1 success=1