mirror of
https://github.com/lutris/lutris
synced 2024-09-15 22:09:55 +00:00
Preserve AppImage files; do not extract them
My previous fixes here were misguided. Those AppImage files must not be extracted at all or they won't work. I've created a sort of dumb extractor function for them that just copies the .AppImage file; this avoids letting 7-zip ever see them, so they don't get damaged.
This commit is contained in:
parent
d0b7ea8516
commit
e6a1138754
|
@ -87,6 +87,8 @@ def guess_extractor(path):
|
|||
extractor = "exe"
|
||||
elif path.endswith(".deb"):
|
||||
extractor = "deb"
|
||||
elif path.endswith(".AppImage"):
|
||||
extractor = "AppImage"
|
||||
else:
|
||||
extractor = None
|
||||
return extractor
|
||||
|
@ -113,6 +115,8 @@ def get_archive_opener(extractor):
|
|||
opener = "exe"
|
||||
elif extractor == "deb":
|
||||
opener = "deb"
|
||||
elif extractor == "AppImage":
|
||||
opener = "AppImage"
|
||||
else:
|
||||
opener = "7zip"
|
||||
return opener, mode
|
||||
|
@ -187,6 +191,8 @@ def _do_extract(archive, dest, opener, mode=None, extractor=None):
|
|||
extract_gog(archive, dest)
|
||||
elif opener == "deb":
|
||||
extract_deb(archive, dest)
|
||||
elif opener == "AppImage":
|
||||
extract_AppImage(archive, dest)
|
||||
else:
|
||||
handler = opener(archive, mode)
|
||||
handler.extractall(dest)
|
||||
|
@ -233,6 +239,13 @@ def extract_deb(archive, dest):
|
|||
break
|
||||
|
||||
|
||||
def extract_AppImage(path, dest):
|
||||
"""This is really here to prevent 7-zip from extracting the AppImage;
|
||||
we want to just use this sort of file as-is."""
|
||||
system.create_folder(dest)
|
||||
shutil.copy(path, dest)
|
||||
|
||||
|
||||
def extract_gog(path, dest):
|
||||
if check_inno_exe(path):
|
||||
decompress_gog(path, dest)
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"description": "Basilisk II is an Open Source 68k Macintosh emulator",
|
||||
"platforms": ["Macintosh"],
|
||||
"runnable_alone": "True",
|
||||
"runner_executable": "basiliskii/usr/bin/BasiliskII",
|
||||
"runner_executable": "basiliskii/BasiliskII-x86_64.AppImage",
|
||||
"download_url": "https://github.com/Korkman/macemu-appimage-builder/releases/download/continuous/BasiliskII-x86_64.AppImage",
|
||||
"game_options": [
|
||||
{
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"description": "SheepShaver emulates a PowerMacintosh computer",
|
||||
"platforms": ["Macintosh"],
|
||||
"runnable_alone": "True",
|
||||
"runner_executable": "sheepshaver/usr/bin/SheepShaver",
|
||||
"runner_executable": "sheepshaver/SheepShaver-x86_64.AppImage",
|
||||
"download_url": "https://github.com/Korkman/macemu-appimage-builder/releases/download/continuous/SheepShaver-x86_64.AppImage",
|
||||
"game_options": [
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue