discord: respect DISCORD_USER_DATA_DIR

Closes: https://github.com/NixOS/nixpkgs/issues/550741
This commit is contained in:
4evy
2026-08-10 15:40:00 +03:00
parent 22acd3aa72
commit ca5951dfa6
3 changed files with 15 additions and 9 deletions

View File

@@ -64,10 +64,12 @@ let
stageModules = writeShellScript "discord-stage-modules" ''
store_modules="$1"
modules_dir="$HOME/Library/Application Support/${configDirName}/${version}/modules"
user_data_dir="''${DISCORD_USER_DATA_DIR-$HOME/Library/Application Support}"
modules_dir="$user_data_dir''${user_data_dir:+/}${configDirName}/${version}/modules"
mkdir -p "$modules_dir"
for m in ${lib.concatStringsSep " " (lib.attrNames moduleSrcs)}; do
ln -sfn "$store_modules/$m" "$modules_dir/$m"
rm -rf "$modules_dir/$m"
ln -s "$store_modules/$m" "$modules_dir/$m"
done
echo '${builtins.toJSON (lib.mapAttrs (_: mod: { installedVersion = mod; }) moduleVersions)}' \
> "$modules_dir/installed.json"

View File

@@ -17,10 +17,13 @@ import os
import sys
from pathlib import Path
config_home = {
"darwin": os.path.join(os.path.expanduser("~"), "Library", "Application Support"),
"linux": os.environ.get("XDG_CONFIG_HOME") or os.path.join(os.path.expanduser("~"), ".config")
}.get(sys.platform, None)
config_home = os.environ.get("DISCORD_USER_DATA_DIR")
if config_home is None:
config_home = {
"darwin": os.path.join(os.path.expanduser("~"), "Library", "Application Support"),
"linux": os.environ.get("XDG_CONFIG_HOME")
or os.path.join(os.path.expanduser("~"), ".config"),
}.get(sys.platform, None)
if config_home is None:
print("[Nix] Unsupported operating system.")
@@ -28,8 +31,8 @@ if config_home is None:
config_dir_name = "@configDirName@".replace(" ", "") if sys.platform == "darwin" else "@configDirName@"
settings_path = Path(f"{config_home}/{config_dir_name}/settings.json")
settings_path_temp = Path(f"{config_home}/{config_dir_name}/settings.json.tmp")
settings_path = Path(config_home) / config_dir_name / "settings.json"
settings_path_temp = settings_path.with_suffix(".json.tmp")
if os.path.exists(settings_path):
with settings_path.open(encoding="utf-8") as settings_file:

View File

@@ -152,7 +152,8 @@ let
# where Discord's JS moduleUpdater expects them.
stageModules = writeShellScript "discord-stage-modules" ''
store_modules="$1"
modules_dir="''${XDG_CONFIG_HOME:-$HOME/.config}/${lib.toLower binaryName}/${version}/modules"
user_data_dir="''${DISCORD_USER_DATA_DIR-''${XDG_CONFIG_HOME:-$HOME/.config}}"
modules_dir="$user_data_dir''${user_data_dir:+/}${lib.toLower binaryName}/${version}/modules"
rm -rf "$modules_dir"
mkdir -p "$modules_dir"
for m in ${lib.concatStringsSep " " (lib.attrNames moduleSrcs)}; do