mirror of
https://github.com/tcsenpai/UWINE.git
synced 2025-06-07 03:55:21 +00:00
Support setting ULWGL_ID
- Set STEAM_COMPAT_APP_ID to a valid ULWGL_ID to allow applying non-steam protonfixes to games. - Related toc3c016bcdc
and99b3166e83
.
This commit is contained in:
parent
066e869485
commit
b5a3ac2b0f
@ -8,6 +8,7 @@ from pathlib import Path
|
|||||||
import tomllib
|
import tomllib
|
||||||
from typing import Dict, Any, List, Set
|
from typing import Dict, Any, List, Set
|
||||||
import gamelauncher_plugins
|
import gamelauncher_plugins
|
||||||
|
from re import match
|
||||||
|
|
||||||
# TODO: Only set the environment variables that are not empty
|
# TODO: Only set the environment variables that are not empty
|
||||||
import subprocess
|
import subprocess
|
||||||
@ -239,7 +240,12 @@ def main() -> None: # noqa: D103
|
|||||||
if getattr(args, "verb", None) and getattr(args, "verb", None) in verbs:
|
if getattr(args, "verb", None) and getattr(args, "verb", None) in verbs:
|
||||||
verb = getattr(args, "verb", None)
|
verb = getattr(args, "verb", None)
|
||||||
|
|
||||||
env["STEAM_COMPAT_APP_ID"] = env["GAMEID"]
|
env["ULWGL_ID"] = env["GAMEID"]
|
||||||
|
env["STEAM_COMPAT_APP_ID"] = "0"
|
||||||
|
|
||||||
|
if match(r"^ulwgl-[\d\w]+$", env["ULWGL_ID"]):
|
||||||
|
env["STEAM_COMPAT_APP_ID"] = env["ULWGL_ID"][env["ULWGL_ID"].find("-") + 1 :]
|
||||||
|
|
||||||
env["SteamAppId"] = env["STEAM_COMPAT_APP_ID"]
|
env["SteamAppId"] = env["STEAM_COMPAT_APP_ID"]
|
||||||
env["SteamGameId"] = env["SteamAppId"]
|
env["SteamGameId"] = env["SteamAppId"]
|
||||||
env["WINEPREFIX"] = Path(env["WINEPREFIX"]).expanduser().as_posix()
|
env["WINEPREFIX"] = Path(env["WINEPREFIX"]).expanduser().as_posix()
|
||||||
|
@ -37,6 +37,7 @@ class TestGameLauncher(unittest.TestCase):
|
|||||||
"SteamAppId": "",
|
"SteamAppId": "",
|
||||||
"SteamGameId": "",
|
"SteamGameId": "",
|
||||||
"STEAM_RUNTIME_LIBRARY_PATH": "",
|
"STEAM_RUNTIME_LIBRARY_PATH": "",
|
||||||
|
"ULWGL_ID": "",
|
||||||
}
|
}
|
||||||
self.test_opts = "-foo -bar"
|
self.test_opts = "-foo -bar"
|
||||||
# Proton verb
|
# Proton verb
|
||||||
@ -110,9 +111,14 @@ class TestGameLauncher(unittest.TestCase):
|
|||||||
# Check if the EXE is empty
|
# Check if the EXE is empty
|
||||||
self.assertFalse(result_set_env["EXE"], "Expected EXE to be empty")
|
self.assertFalse(result_set_env["EXE"], "Expected EXE to be empty")
|
||||||
|
|
||||||
# Set remaining environment variables
|
self.env["ULWGL_ID"] = self.env["GAMEID"]
|
||||||
self.env["STEAM_COMPAT_MOUNTS"] = self.env["STEAM_COMPAT_TOOL_PATHS"]
|
self.env["STEAM_COMPAT_APP_ID"] = "0"
|
||||||
self.env["STEAM_COMPAT_APP_ID"] = self.env["GAMEID"]
|
|
||||||
|
if re.match(r"^ulwgl-[\d\w]+$", self.env["ULWGL_ID"]):
|
||||||
|
self.env["STEAM_COMPAT_APP_ID"] = self.env["ULWGL_ID"][
|
||||||
|
self.env["ULWGL_ID"].find("-") + 1 :
|
||||||
|
]
|
||||||
|
|
||||||
self.env["SteamAppId"] = self.env["STEAM_COMPAT_APP_ID"]
|
self.env["SteamAppId"] = self.env["STEAM_COMPAT_APP_ID"]
|
||||||
self.env["SteamGameId"] = self.env["SteamAppId"]
|
self.env["SteamGameId"] = self.env["SteamAppId"]
|
||||||
self.env["WINEPREFIX"] = Path(self.env["WINEPREFIX"]).expanduser().as_posix()
|
self.env["WINEPREFIX"] = Path(self.env["WINEPREFIX"]).expanduser().as_posix()
|
||||||
@ -221,8 +227,14 @@ class TestGameLauncher(unittest.TestCase):
|
|||||||
self.assertEqual(result_set_env["PROTONPATH"], self.test_file)
|
self.assertEqual(result_set_env["PROTONPATH"], self.test_file)
|
||||||
self.assertEqual(result_set_env["GAMEID"], self.test_file)
|
self.assertEqual(result_set_env["GAMEID"], self.test_file)
|
||||||
|
|
||||||
self.env["STEAM_COMPAT_MOUNTS"] = self.env["STEAM_COMPAT_TOOL_PATHS"]
|
self.env["ULWGL_ID"] = self.env["GAMEID"]
|
||||||
self.env["STEAM_COMPAT_APP_ID"] = self.env["GAMEID"]
|
self.env["STEAM_COMPAT_APP_ID"] = "0"
|
||||||
|
|
||||||
|
if re.match(r"^ulwgl-[\d\w]+$", self.env["ULWGL_ID"]):
|
||||||
|
self.env["STEAM_COMPAT_APP_ID"] = self.env["ULWGL_ID"][
|
||||||
|
self.env["ULWGL_ID"].find("-") + 1 :
|
||||||
|
]
|
||||||
|
|
||||||
self.env["SteamAppId"] = self.env["STEAM_COMPAT_APP_ID"]
|
self.env["SteamAppId"] = self.env["STEAM_COMPAT_APP_ID"]
|
||||||
self.env["SteamGameId"] = self.env["SteamAppId"]
|
self.env["SteamGameId"] = self.env["SteamAppId"]
|
||||||
self.env["WINEPREFIX"] = Path(self.env["WINEPREFIX"]).expanduser().as_posix()
|
self.env["WINEPREFIX"] = Path(self.env["WINEPREFIX"]).expanduser().as_posix()
|
||||||
@ -298,8 +310,14 @@ class TestGameLauncher(unittest.TestCase):
|
|||||||
self.assertEqual(result_set_env["PROTONPATH"], self.test_file)
|
self.assertEqual(result_set_env["PROTONPATH"], self.test_file)
|
||||||
self.assertEqual(result_set_env["GAMEID"], self.test_file)
|
self.assertEqual(result_set_env["GAMEID"], self.test_file)
|
||||||
|
|
||||||
self.env["STEAM_COMPAT_MOUNTS"] = self.env["STEAM_COMPAT_TOOL_PATHS"]
|
self.env["ULWGL_ID"] = self.env["GAMEID"]
|
||||||
self.env["STEAM_COMPAT_APP_ID"] = self.env["GAMEID"]
|
self.env["STEAM_COMPAT_APP_ID"] = "0"
|
||||||
|
|
||||||
|
if re.match(r"^ulwgl-[\d\w]+$", self.env["ULWGL_ID"]):
|
||||||
|
self.env["STEAM_COMPAT_APP_ID"] = self.env["ULWGL_ID"][
|
||||||
|
self.env["ULWGL_ID"].find("-") + 1 :
|
||||||
|
]
|
||||||
|
|
||||||
self.env["SteamAppId"] = self.env["STEAM_COMPAT_APP_ID"]
|
self.env["SteamAppId"] = self.env["STEAM_COMPAT_APP_ID"]
|
||||||
self.env["SteamGameId"] = self.env["SteamAppId"]
|
self.env["SteamGameId"] = self.env["SteamAppId"]
|
||||||
self.env["WINEPREFIX"] = Path(self.env["WINEPREFIX"]).expanduser().as_posix()
|
self.env["WINEPREFIX"] = Path(self.env["WINEPREFIX"]).expanduser().as_posix()
|
||||||
@ -316,7 +334,6 @@ class TestGameLauncher(unittest.TestCase):
|
|||||||
self.env["PROTONPATH"] + ":" + Path(__file__).parent.as_posix()
|
self.env["PROTONPATH"] + ":" + Path(__file__).parent.as_posix()
|
||||||
)
|
)
|
||||||
self.env["STEAM_COMPAT_MOUNTS"] = self.env["STEAM_COMPAT_TOOL_PATHS"]
|
self.env["STEAM_COMPAT_MOUNTS"] = self.env["STEAM_COMPAT_TOOL_PATHS"]
|
||||||
|
|
||||||
# Create an empty Proton prefix when asked
|
# Create an empty Proton prefix when asked
|
||||||
if not getattr(result, "exe", None) and not getattr(result, "config", None):
|
if not getattr(result, "exe", None) and not getattr(result, "config", None):
|
||||||
self.env["EXE"] = ""
|
self.env["EXE"] = ""
|
||||||
@ -374,8 +391,14 @@ class TestGameLauncher(unittest.TestCase):
|
|||||||
self.assertEqual(result_set_env["PROTONPATH"], self.test_file)
|
self.assertEqual(result_set_env["PROTONPATH"], self.test_file)
|
||||||
self.assertEqual(result_set_env["GAMEID"], self.test_file)
|
self.assertEqual(result_set_env["GAMEID"], self.test_file)
|
||||||
|
|
||||||
self.env["STEAM_COMPAT_MOUNTS"] = self.env["STEAM_COMPAT_TOOL_PATHS"]
|
self.env["ULWGL_ID"] = self.env["GAMEID"]
|
||||||
self.env["STEAM_COMPAT_APP_ID"] = self.env["GAMEID"]
|
self.env["STEAM_COMPAT_APP_ID"] = "0"
|
||||||
|
|
||||||
|
if re.match(r"^ulwgl-[\d\w]+$", self.env["ULWGL_ID"]):
|
||||||
|
self.env["STEAM_COMPAT_APP_ID"] = self.env["ULWGL_ID"][
|
||||||
|
self.env["ULWGL_ID"].find("-") + 1 :
|
||||||
|
]
|
||||||
|
|
||||||
self.env["SteamAppId"] = self.env["STEAM_COMPAT_APP_ID"]
|
self.env["SteamAppId"] = self.env["STEAM_COMPAT_APP_ID"]
|
||||||
self.env["SteamGameId"] = self.env["SteamAppId"]
|
self.env["SteamGameId"] = self.env["SteamAppId"]
|
||||||
self.env["WINEPREFIX"] = Path(self.env["WINEPREFIX"]).expanduser().as_posix()
|
self.env["WINEPREFIX"] = Path(self.env["WINEPREFIX"]).expanduser().as_posix()
|
||||||
@ -469,9 +492,14 @@ class TestGameLauncher(unittest.TestCase):
|
|||||||
"Expected the concat EXE and game options to not have trailing spaces",
|
"Expected the concat EXE and game options to not have trailing spaces",
|
||||||
)
|
)
|
||||||
|
|
||||||
self.env["STEAM_COMPAT_MOUNTS"] = self.env["STEAM_COMPAT_TOOL_PATHS"]
|
self.env["ULWGL_ID"] = self.env["GAMEID"]
|
||||||
self.env["STEAM_COMPAT_MOUNTS"] = self.env["STEAM_COMPAT_TOOL_PATHS"]
|
self.env["STEAM_COMPAT_APP_ID"] = "0"
|
||||||
self.env["STEAM_COMPAT_APP_ID"] = self.env["GAMEID"]
|
|
||||||
|
if re.match(r"^ulwgl-[\d\w]+$", self.env["ULWGL_ID"]):
|
||||||
|
self.env["STEAM_COMPAT_APP_ID"] = self.env["ULWGL_ID"][
|
||||||
|
self.env["ULWGL_ID"].find("-") + 1 :
|
||||||
|
]
|
||||||
|
|
||||||
self.env["SteamAppId"] = self.env["STEAM_COMPAT_APP_ID"]
|
self.env["SteamAppId"] = self.env["STEAM_COMPAT_APP_ID"]
|
||||||
self.env["SteamGameId"] = self.env["SteamAppId"]
|
self.env["SteamGameId"] = self.env["SteamAppId"]
|
||||||
self.env["WINEPREFIX"] = Path(self.env["WINEPREFIX"]).expanduser().as_posix()
|
self.env["WINEPREFIX"] = Path(self.env["WINEPREFIX"]).expanduser().as_posix()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user