diff --git a/backend/converter.py b/backend/converter.py index 2a5b1f1..1ae989b 100644 --- a/backend/converter.py +++ b/backend/converter.py @@ -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)]), diff --git a/backend/install.sh b/backend/install.sh index 3d5e895..5349127 100755 --- a/backend/install.sh +++ b/backend/install.sh @@ -110,6 +110,7 @@ REQUIRED=( libguestfs-tools "guestfish" p7zip-full "7z" unzip "unzip" + unrar-free "unrar" tar "tar" gzip "gunzip" bzip2 "bunzip2"