Skip to content

Commit

Permalink
Merge branch 'main' into insteam
Browse files Browse the repository at this point in the history
  • Loading branch information
GloriousEggroll authored Feb 20, 2024
2 parents 6811911 + 8ed1f0f commit 39b48b4
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 12 deletions.
36 changes: 26 additions & 10 deletions ulwgl_run.py
Original file line number Diff line number Diff line change
Expand Up @@ -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} ""
Expand Down Expand Up @@ -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()

This comment has been minimized.

Copy link
@zocker-160

zocker-160 Feb 20, 2024

@GloriousEggroll With this change, when I manually set WINEPREFIX to a folder that does not exist, this check will fail and ignore my custom setting.

I feel like this is not what a user would expect when manually setting WINEPREFIX.

This comment has been minimized.

Copy link
@GloriousEggroll

GloriousEggroll Feb 20, 2024

Author Member

thanks for the heads up, thats definitely not what we want. as you've noted the expected behavior is to create the prefix defined in WINEPREFIX if it does not exist. We'll get it corrected. @R1kaB3rN

This comment has been minimized.

Copy link
@GloriousEggroll

GloriousEggroll Feb 20, 2024

Author Member

should be fixed here a610be4

This comment has been minimized.

Copy link
@R1kaB3rN

R1kaB3rN Feb 21, 2024

Member

@GloriousEggroll With this change, when I manually set WINEPREFIX to a folder that does not exist, this check will fail and ignore my custom setting.

I feel like this is not what a user would expect when manually setting WINEPREFIX.

Yes, the logic was poorly written there.

@zocker-160 very sorry for this and thanks for the report!

):
# 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)
Expand Down
7 changes: 5 additions & 2 deletions ulwgl_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -1553,8 +1553,11 @@ def test_env_vars_wine(self):
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)


Expand Down

0 comments on commit 39b48b4

Please sign in to comment.