1
0
mirror of https://github.com/ohmyzsh/ohmyzsh.git synced 2025-09-20 18:08:21 +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

@ -15,9 +15,8 @@ plugins=(... extract)
## Supported file extensions
| Extension | Description |
| :---------------- | :----------------------------------- |
| :---------------- | :-------------------------------------- |
| `7z` | 7zip file |
| `Z` | Z archive (LZW) |
| `apk` | Android app file |
| `aar` | Android library file |
| `bz2` | Bzip2 file |
@ -34,6 +33,9 @@ plugins=(... extract)
| `lz4` | LZ4 archive |
| `lzma` | LZMA archive |
| `obscpio` | cpio archive used on OBS |
| `pk3` | Renamed Zip archive used by Quake games |
| `pk4` | Renamed Zip archive used by Quake games |
| `pk7` | Renamed 7zip file used by Quake games |
| `rar` | WinRAR archive |
| `rpm` | RPM package |
| `sublime-package` | Sublime Text package |
@ -57,6 +59,7 @@ plugins=(... extract)
| `whl` | Python wheel file |
| `xpi` | Mozilla XPI module file |
| `xz` | LZMA2 archive |
| `Z` | Z archive (LZW) |
| `zip` | Zip archive |
| `zlib` | zlib archive |
| `zst` | Zstandard file (zstd) |

View File

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

View File

@ -76,11 +76,11 @@ EOF
(*.lz4) lz4 -d "$full_path" ;;
(*.lzma) unlzma "$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" ;;
(*.rpm)
rpm2cpio "$full_path" | cpio --quiet -id ;;
(*.7z | *.7z.[0-9]*) 7za x "$full_path" ;;
(*.7z | *.7z.[0-9]* | *.pk7) 7za x "$full_path" ;;
(*.deb)
command mkdir -p "control" "data"
ar vx "$full_path" > /dev/null