Merge branch 'main' into insteam

This commit is contained in:
Thomas Crider 2024-02-20 10:43:22 -07:00 committed by GitHub
commit 39b48b4c2c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 31 additions and 12 deletions

View File

@ -28,6 +28,8 @@ def parse_args() -> Union[Namespace, Tuple[str, List[str]]]: # noqa: D103
exe: str = Path(__file__).name
usage: str = f"""
example usage:
GAMEID= {exe} /home/foo/example.exe
WINEPREFIX= GAMEID= {exe} /home/foo/example.exe
WINEPREFIX= GAMEID= PROTONPATH= {exe} /home/foo/example.exe
WINEPREFIX= GAMEID= PROTONPATH= {exe} /home/foo/example.exe -opengl
WINEPREFIX= GAMEID= PROTONPATH= {exe} ""
@ -117,24 +119,38 @@ def check_env(
return toml
if "WINEPREFIX" not in os.environ:
err: str = "Environment variable not set or not a directory: WINEPREFIX"
raise ValueError(err)
if not Path(os.environ["WINEPREFIX"]).expanduser().is_dir():
Path(os.environ["WINEPREFIX"]).mkdir(parents=True)
env["WINEPREFIX"] = os.environ["WINEPREFIX"]
if "GAMEID" not in os.environ:
err: str = "Environment variable not set: GAMEID"
raise ValueError(err)
env["GAMEID"] = os.environ["GAMEID"]
if (
"WINEPREFIX" not in os.environ
or not Path(os.environ["WINEPREFIX"]).expanduser().is_dir()
):
# Automatically create a prefix for the user if WINEPREFIX is not set
# The GAMEID will be the name of the dir
pfx: Path = Path.home().joinpath("Games/ULWGL/" + env["GAMEID"])
pfx.mkdir(parents=True, exist_ok=True)
os.environ["WINEPREFIX"] = pfx.as_posix()
env["WINEPREFIX"] = os.environ["WINEPREFIX"]
else:
env["WINEPREFIX"] = os.environ["WINEPREFIX"]
if "PROTONPATH" not in os.environ:
os.environ["PROTONPATH"] = ""
get_ulwgl_proton(env)
elif Path("~/.local/share/Steam/compatibilitytools.d/" + os.environ["PROTONPATH"]).expanduser().is_dir():
env["PROTONPATH"] = Path("~/.local/share/Steam/compatibilitytools.d/").expanduser().joinpath(os.environ["PROTONPATH"]).as_posix()
elif (
Path("~/.local/share/Steam/compatibilitytools.d/" + os.environ["PROTONPATH"])
.expanduser()
.is_dir()
):
env["PROTONPATH"] = (
Path("~/.local/share/Steam/compatibilitytools.d/")
.expanduser()
.joinpath(os.environ["PROTONPATH"]).as_posix()
)
elif not Path(os.environ["PROTONPATH"]).expanduser().is_dir():
os.environ["PROTONPATH"] = ""
get_ulwgl_proton(env)

View File

@ -1553,8 +1553,11 @@ class TestGameLauncher(unittest.TestCase):
ulwgl_run.check_env(self.env)
def test_env_vars_none(self):
"""Tests check_env when setting no env vars."""
with self.assertRaisesRegex(ValueError, "WINEPREFIX"):
"""Tests check_env when setting no env vars.
GAMEID should be the only strictly required env var
"""
with self.assertRaisesRegex(ValueError, "GAMEID"):
ulwgl_run.check_env(self.env)