diff options
| author | Gio <me@gio.blue> | 2026-10-18 08:11:13 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-10-17 20:11:13 -0400 |
| commit | 3c088117f0266852ec5ea780ff6f737dcfa9eab2 (patch) | |
| tree | dee880537df8c48e867122db197fc3114d8a1a16 /backend | |
| parent | 7611e381a8e3717d3b8a77b299c22042b9c97ea6 (diff) | |
| download | decky-loader-3c088117f0266852ec5ea780ff6f737dcfa9eab2.tar.gz decky-loader-3c088117f0266852ec5ea780ff6f737dcfa9eab2.zip | |
fix(macOS): fix macOS type checking and missing method (#923)
Co-authored-by: AAGaming <aagaming@riseup.net>
Signed-off-by: Gianni Spadoni <me@gio.blue>
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/decky_loader/helpers.py | 5 | ||||
| -rw-r--r-- | backend/decky_loader/loader.py | 5 | ||||
| -rw-r--r-- | backend/decky_loader/localplatform/localplatformmac.py | 10 |
3 files changed, 14 insertions, 6 deletions
diff --git a/backend/decky_loader/helpers.py b/backend/decky_loader/helpers.py index 1621652f..bc330298 100644 --- a/backend/decky_loader/helpers.py +++ b/backend/decky_loader/helpers.py @@ -93,10 +93,11 @@ user_agent = f"Decky/{get_loader_version()} (https://decky.xyz)" # returns the appropriate system python paths def get_system_pythonpaths() -> list[str]: try: + is_linux_or_mac = localplatform.ON_LINUX or localplatform.ON_MAC # run as normal normal user if on linux to also include user python paths - proc = subprocess.run(["python3" if localplatform.ON_LINUX else "python", "-c", "import sys; print('\\n'.join(x for x in sys.path if x))"], + proc = subprocess.run(["python3" if is_linux_or_mac else "python", "-c", "import sys; print('\\n'.join(x for x in sys.path if x))"], # TODO make this less insane - capture_output=True, user=localplatform.localplatform._get_user_id() if localplatform.ON_LINUX else None, env={} if localplatform.ON_LINUX else None) # pyright: ignore [reportPrivateUsage] + capture_output=True, user=localplatform.localplatform._get_user_id() if is_linux_or_mac else None, env={} if is_linux_or_mac else None) # pyright: ignore [reportPrivateUsage] proc.check_returncode() diff --git a/backend/decky_loader/loader.py b/backend/decky_loader/loader.py index 297fc202..e7c2fec7 100644 --- a/backend/decky_loader/loader.py +++ b/backend/decky_loader/loader.py @@ -9,6 +9,7 @@ from typing import Any, Tuple, Dict, cast from aiohttp import web from os.path import exists from decky_loader.helpers import get_homebrew_path +from decky_loader.localplatform.localplatform import ON_MAC from watchdog.events import RegexMatchingEventHandler, FileSystemEvent from watchdog.observers import Observer @@ -106,6 +107,10 @@ class Loader: async def enable_reload_wait(self): if self.live_reload: + if ON_MAC: + self.logger.info("Hot reload is not supported on macOS") + return + await sleep(10) if self.watcher and self.live_reload: self.logger.info("Hot reload enabled") diff --git a/backend/decky_loader/localplatform/localplatformmac.py b/backend/decky_loader/localplatform/localplatformmac.py index fd31870b..fd491785 100644 --- a/backend/decky_loader/localplatform/localplatformmac.py +++ b/backend/decky_loader/localplatform/localplatformmac.py @@ -1,10 +1,12 @@ from ..enums import UserType -import os from . import localplatformlinux -# this should be public +# NOTE: localplatformlinux has these private functions that get used in helpers.py +def _get_user_id() -> int: # pyright: ignore[reportUnusedFunction] + return localplatformlinux._get_user_id() # pyright: ignore[reportPrivateUsage] + def _get_effective_user_id() -> int: # pyright: ignore[reportUnusedFunction] - return os.geteuid() + return localplatformlinux._get_effective_user_id() # pyright: ignore[reportPrivateUsage] def chown(path : str, user : UserType = UserType.HOST_USER, recursive : bool = True) -> bool: return localplatformlinux.chown(path, user, recursive) @@ -43,7 +45,7 @@ def get_username() -> str: return localplatformlinux.get_username() def get_privileged_path() -> str: - '''On Mac, privileged_path is equal to unprivileged_path''' + # On Mac, privileged_path is equal to unprivileged_path return get_unprivileged_path() def get_unprivileged_path() -> str: |
