diff --git a/pkgs/applications/networking/instant-messengers/discord/darwin.nix b/pkgs/applications/networking/instant-messengers/discord/darwin.nix index b8ff915a0ff0..649dd753d9ff 100644 --- a/pkgs/applications/networking/instant-messengers/discord/darwin.nix +++ b/pkgs/applications/networking/instant-messengers/discord/darwin.nix @@ -65,14 +65,12 @@ let stageModules = writeShellScript "discord-stage-modules" '' store_modules="$1" modules_dir="$HOME/Library/Application Support/${configDirName}/${version}/modules" - if [ ! -f "$modules_dir/installed.json" ]; then - mkdir -p "$modules_dir" - for m in ${lib.concatStringsSep " " (lib.attrNames moduleSrcs)}; do - ln -sfn "$store_modules/$m" "$modules_dir/$m" - done - echo '${builtins.toJSON (lib.mapAttrs (_: mod: { installedVersion = mod; }) moduleVersions)}' \ - > "$modules_dir/installed.json" - fi + mkdir -p "$modules_dir" + for m in ${lib.concatStringsSep " " (lib.attrNames moduleSrcs)}; do + ln -sfn "$store_modules/$m" "$modules_dir/$m" + done + echo '${builtins.toJSON (lib.mapAttrs (_: mod: { installedVersion = mod; }) moduleVersions)}' \ + > "$modules_dir/installed.json" ''; disableBreakingUpdates = @@ -80,6 +78,7 @@ let { pythonInterpreter = "${python3.interpreter}"; configDirName = lib.toLower binaryName; + skipModuleUpdate = lib.boolToString withOpenASAR; meta.mainProgram = "disable-breaking-updates.py"; } '' @@ -141,7 +140,7 @@ stdenv.mkDerivation { mkdir -p $out/bin makeWrapper "$out/Applications/${desktopName}.app/Contents/MacOS/${binaryName}" "$out/bin/${binaryName}" \ --run ${lib.getExe disableBreakingUpdates} \ - --run "${stageModules} $out/Applications/${desktopName}.app/Contents/Resources/modules" \ + --run "${stageModules} \"$out/Applications/${desktopName}.app/Contents/Resources/modules\"" \ --add-flags ${lib.escapeShellArg commandLineArgs} runHook postInstall diff --git a/pkgs/applications/networking/instant-messengers/discord/disable-breaking-updates.py b/pkgs/applications/networking/instant-messengers/discord/disable-breaking-updates.py index a7ffd8405ad6..aa441f1dcc4f 100644 --- a/pkgs/applications/networking/instant-messengers/discord/disable-breaking-updates.py +++ b/pkgs/applications/networking/instant-messengers/discord/disable-breaking-updates.py @@ -41,11 +41,16 @@ if os.path.exists(settings_path): else: settings = {} -if settings.get("SKIP_HOST_UPDATE"): - print("[Nix] Disabling updates already done") -else: - skip_host_update = {"SKIP_HOST_UPDATE": True} - settings.update(skip_host_update) +required_settings = {"SKIP_HOST_UPDATE": True} +if "@skipModuleUpdate@" == "true": + required_settings["SKIP_MODULE_UPDATE"] = True + +missing_settings = { + key: value for key, value in required_settings.items() if settings.get(key) != value +} + +if missing_settings: + settings.update(missing_settings) os.makedirs(os.path.dirname(settings_path), exist_ok=True) @@ -54,3 +59,5 @@ else: settings_path_temp.rename(settings_path) print("[Nix] Disabled updates") +else: + print("[Nix] Disabling updates already done") diff --git a/pkgs/applications/networking/instant-messengers/discord/linux.nix b/pkgs/applications/networking/instant-messengers/discord/linux.nix index 0e725bd3e103..51bdeadd412e 100644 --- a/pkgs/applications/networking/instant-messengers/discord/linux.nix +++ b/pkgs/applications/networking/instant-messengers/discord/linux.nix @@ -167,6 +167,7 @@ let { pythonInterpreter = "${python3.interpreter}"; configDirName = lib.toLower binaryName; + skipModuleUpdate = lib.boolToString withOpenASAR; meta.mainProgram = "disable-breaking-updates.py"; } ''