1
0
mirror of https://github.com/ohmyzsh/ohmyzsh.git synced 2025-09-20 09:56:45 +08:00

feat(extract): support .pk{3,4,7} files (#13254)

This commit is contained in:
drjaska 2025-08-08 12:23:24 +03:00 committed by GitHub
parent ef96242b9b
commit 9d8d4cf414
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 55 additions and 49 deletions

View File

@ -14,53 +14,56 @@ plugins=(... extract)
## Supported file extensions ## Supported file extensions
| Extension | Description | | Extension | Description |
| :---------------- | :----------------------------------- | | :---------------- | :-------------------------------------- |
| `7z` | 7zip file | | `7z` | 7zip file |
| `Z` | Z archive (LZW) | | `apk` | Android app file |
| `apk` | Android app file | | `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 |
| `cpio` | Cpio archive | | `deb` | Debian package |
| `deb` | Debian package | | `ear` | Enterprise Application aRchive |
| `ear` | Enterprise Application aRchive | | `exe` | Windows executable file |
| `exe` | Windows executable file | | `gz` | Gzip file |
| `gz` | Gzip file | | `ipa` | iOS app package |
| `ipa` | iOS app package | | `ipsw` | iOS firmware file |
| `ipsw` | iOS firmware file | | `jar` | Java Archive |
| `jar` | Java Archive | | `lrz` | LRZ archive |
| `lrz` | LRZ archive | | `lz4` | LZ4 archive |
| `lz4` | LZ4 archive | | `lzma` | LZMA archive |
| `lzma` | LZMA archive | | `obscpio` | cpio archive used on OBS |
| `obscpio` | cpio archive used on OBS | | `pk3` | Renamed Zip archive used by Quake games |
| `rar` | WinRAR archive | | `pk4` | Renamed Zip archive used by Quake games |
| `rpm` | RPM package | | `pk7` | Renamed 7zip file used by Quake games |
| `sublime-package` | Sublime Text package | | `rar` | WinRAR archive |
| `tar` | Tarball | | `rpm` | RPM package |
| `tar.bz2` | Tarball with bzip2 compression | | `sublime-package` | Sublime Text package |
| `tar.gz` | Tarball with gzip compression | | `tar` | Tarball |
| `tar.lrz` | Tarball with lrzip compression | | `tar.bz2` | Tarball with bzip2 compression |
| `tar.lz` | Tarball with lzip compression | | `tar.gz` | Tarball with gzip compression |
| `tar.lz4` | Tarball with lz4 compression | | `tar.lrz` | Tarball with lrzip compression |
| `tar.xz` | Tarball with lzma2 compression | | `tar.lz` | Tarball with lzip compression |
| `tar.zma` | Tarball with lzma compression | | `tar.lz4` | Tarball with lz4 compression |
| `tar.zst` | Tarball with zstd compression | | `tar.xz` | Tarball with lzma2 compression |
| `tbz` | Tarball with bzip compression | | `tar.zma` | Tarball with lzma compression |
| `tbz2` | Tarball with bzip2 compression | | `tar.zst` | Tarball with zstd compression |
| `tgz` | Tarball with gzip compression | | `tbz` | Tarball with bzip compression |
| `tlz` | Tarball with lzma compression | | `tbz2` | Tarball with bzip2 compression |
| `txz` | Tarball with lzma2 compression | | `tgz` | Tarball with gzip compression |
| `tzst` | Tarball with zstd compression | | `tlz` | Tarball with lzma compression |
| `vsix` | VS Code extension zip file | | `txz` | Tarball with lzma2 compression |
| `war` | Web Application archive (Java-based) | | `tzst` | Tarball with zstd compression |
| `whl` | Python wheel file | | `vsix` | VS Code extension zip file |
| `xpi` | Mozilla XPI module file | | `war` | Web Application archive (Java-based) |
| `xz` | LZMA2 archive | | `whl` | Python wheel file |
| `zip` | Zip archive | | `xpi` | Mozilla XPI module file |
| `zlib` | zlib archive | | `xz` | LZMA2 archive |
| `zst` | Zstandard file (zstd) | | `Z` | Z archive (LZW) |
| `zpaq` | Zpaq file | | `zip` | Zip archive |
| `zlib` | zlib archive |
| `zst` | Zstandard file (zstd) |
| `zpaq` | Zpaq file |
See [list of archive formats](https://en.wikipedia.org/wiki/List_of_archive_formats) for more information See [list of archive formats](https://en.wikipedia.org/wiki/List_of_archive_formats) for more information
regarding archive formats. regarding archive formats.

View File

@ -19,6 +19,9 @@ local -a exts=(
lz4 lz4
lzma lzma
obscpio obscpio
pk3
pk4
pk7
rar rar
rpm rpm
sublime-package sublime-package

View File

@ -76,11 +76,11 @@ EOF
(*.lz4) lz4 -d "$full_path" ;; (*.lz4) lz4 -d "$full_path" ;;
(*.lzma) unlzma "$full_path" ;; (*.lzma) unlzma "$full_path" ;;
(*.z) uncompress "$full_path" ;; (*.z) uncompress "$full_path" ;;
(*.zip|*.war|*.jar|*.ear|*.sublime-package|*.ipa|*.ipsw|*.xpi|*.apk|*.aar|*.whl|*.vsix|*.crx) unzip "$full_path" ;; (*.zip|*.war|*.jar|*.ear|*.sublime-package|*.ipa|*.ipsw|*.xpi|*.apk|*.aar|*.whl|*.vsix|*.crx|*.pk3|*.pk4) unzip "$full_path" ;;
(*.rar) unrar x -ad "$full_path" ;; (*.rar) unrar x -ad "$full_path" ;;
(*.rpm) (*.rpm)
rpm2cpio "$full_path" | cpio --quiet -id ;; rpm2cpio "$full_path" | cpio --quiet -id ;;
(*.7z | *.7z.[0-9]*) 7za x "$full_path" ;; (*.7z | *.7z.[0-9]* | *.pk7) 7za x "$full_path" ;;
(*.deb) (*.deb)
command mkdir -p "control" "data" command mkdir -p "control" "data"
ar vx "$full_path" > /dev/null ar vx "$full_path" > /dev/null