From c7751edd919756712b4d1f94774c3d37aecf4179 Mon Sep 17 00:00:00 2001 From: oop7 <110548351+oop7@users.noreply.github.com> Date: Wed, 7 Jan 2026 18:11:06 +0200 Subject: [PATCH] Add DENO_APP_BIN_PATH env override and Flatpak support Introduces support for overriding DENO_APP_BIN_PATH via environment variable, enabling compatibility with Flatpak packaging. Updates the build workflow to set the DENO_APP_BIN_PATH environment variable and ensures parent directories for custom binary paths are created if needed. --- .github/workflows/build-linux.yml | 3 ++- src/utils/ytsage_constants.py | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index c5dbef4..bf7182f 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -423,7 +423,8 @@ jobs: "--device=dri", "--share=network", "--filesystem=host", - "--env=YTDLP_APP_BIN_PATH=/var/data/yt-dlp" + "--env=YTDLP_APP_BIN_PATH=/var/data/yt-dlp", + "--env=DENO_APP_BIN_PATH=/var/data/deno" ], "modules": [ { diff --git a/src/utils/ytsage_constants.py b/src/utils/ytsage_constants.py index 2f4d7b2..d1a6a8c 100644 --- a/src/utils/ytsage_constants.py +++ b/src/utils/ytsage_constants.py @@ -166,7 +166,13 @@ elif OS_NAME == "Darwin": # macOS else: # Linux DENO_DOWNLOAD_URL: str = "https://github.com/denoland/deno/releases/latest/download/deno-x86_64-unknown-linux-gnu.zip" DENO_SHA256_URL: str = "https://github.com/denoland/deno/releases/latest/download/deno-x86_64-unknown-linux-gnu.zip.sha256sum" - DENO_APP_BIN_PATH: Path = APP_BIN_DIR / "deno" + + # Check for environment variable override (critical for Flatpak support) + _deno_env_path = os.environ.get("DENO_APP_BIN_PATH") + if _deno_env_path: + DENO_APP_BIN_PATH: Path = Path(_deno_env_path) + else: + DENO_APP_BIN_PATH: Path = APP_BIN_DIR / "deno" # FFmpeg download links (Essentials build - always latest version) FFMPEG_7Z_DOWNLOAD_URL = "https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.7z" @@ -203,4 +209,8 @@ else: # Ensure custom yt-dlp directory exists if set if OS_NAME not in ["Windows", "Darwin"]: - YTDLP_APP_BIN_PATH.parent.mkdir(parents=True, exist_ok=True) + # Ensure parent directories exist for custom paths + if "YTDLP_APP_BIN_PATH" in globals(): + YTDLP_APP_BIN_PATH.parent.mkdir(parents=True, exist_ok=True) + if "DENO_APP_BIN_PATH" in globals(): + DENO_APP_BIN_PATH.parent.mkdir(parents=True, exist_ok=True)