fix: add unrar-free, use 7z for .zip extraction (more reliable)
- Added unrar-free package to backend installer - Added .rar to archive extension detection - Changed .zip extraction from unzip → 7z (x -y) 7z handles .zip, .7z, and other formats with one tool - Added unrar handler for .rar files
This commit is contained in:
parent
5e786533b1
commit
6ba7944bb2
2 changed files with 4 additions and 2 deletions
|
|
@ -19,7 +19,7 @@ STAGING_OUT = Path("/mnt/converter/out")
|
|||
|
||||
DISK_EXTENSIONS = {".vmdk", ".qcow2", ".qcow", ".img", ".raw", ".vhd", ".vhdx"}
|
||||
|
||||
ARCHIVE_EXTENSIONS = {".7z", ".zip", ".tar.gz", ".tgz", ".tar", ".gz", ".bz2", ".xz"}
|
||||
ARCHIVE_EXTENSIONS = {".7z", ".zip", ".rar", ".tar.gz", ".tgz", ".tar", ".gz", ".bz2", ".xz"}
|
||||
|
||||
MIN_DISK_BYTES = 1024
|
||||
|
||||
|
|
@ -56,7 +56,8 @@ def extract_if_needed(filename: str) -> Path:
|
|||
# Determine extraction tool
|
||||
tool_map = {
|
||||
".7z": ("7z", ["7z", "x", "-y", str(filepath)]),
|
||||
".zip": ("unzip", ["unzip", "-o", str(filepath)]),
|
||||
".zip": ("7z", ["7z", "x", "-y", str(filepath)]),
|
||||
".rar": ("unrar", ["unrar", "x", "-y", str(filepath)]),
|
||||
".tar.gz": ("tar", ["tar", "-xzf", str(filepath)]),
|
||||
".tgz": ("tar", ["tar", "-xzf", str(filepath)]),
|
||||
".tar": ("tar", ["tar", "-xf", str(filepath)]),
|
||||
|
|
|
|||
|
|
@ -110,6 +110,7 @@ REQUIRED=(
|
|||
libguestfs-tools "guestfish"
|
||||
p7zip-full "7z"
|
||||
unzip "unzip"
|
||||
unrar-free "unrar"
|
||||
tar "tar"
|
||||
gzip "gunzip"
|
||||
bzip2 "bunzip2"
|
||||
|
|
|
|||
Loading…
Reference in a new issue