From 6c99b369bedbefe4c8686f83404b3be637ebcf4a Mon Sep 17 00:00:00 2001 From: Dummerle <44114474+Dummerle@users.noreply.github.com> Date: Tue, 9 Nov 2021 22:48:00 +0100 Subject: [PATCH] Create directory for Wine prefixes at launch --- rare/components/tabs/games/game_utils.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/rare/components/tabs/games/game_utils.py b/rare/components/tabs/games/game_utils.py index 09bcf61e..853118b0 100644 --- a/rare/components/tabs/games/game_utils.py +++ b/rare/components/tabs/games/game_utils.py @@ -121,6 +121,24 @@ class GameUtils(QObject): full_env.update(params.environment) for env, value in full_env.items(): environment.insert(env, value) + + if platform.system() != "Windows": + for env in ["STEAM_COMPAT_DATA_PATH", "WINEPREFIX"]: + if val := full_env.get(env): + if not os.path.exists(val): + try: + os.makedirs(val) + except PermissionError as e: + logger.error(str(e)) + if QMessageBox.question(None, "Error", + self.tr( + "Error while launching {}. No permission to create {} for {}\nLaunch anyway?").format( + game.app_title, val, env), + buttons=QMessageBox.Yes | QMessageBox.No, + defaultButton=QMessageBox.Yes) == QMessageBox.No: + process.deleteLater() + return + process.setProcessEnvironment(environment) process.game_finished.connect(self.game_finished) running_game = RunningGameModel(process=process, app_name=app_name)