discord: disable module updates with OpenASAR (#520078)

This commit is contained in:
Jo
2026-05-16 06:25:08 +00:00
committed by GitHub
3 changed files with 21 additions and 14 deletions
@@ -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
@@ -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")
@@ -167,6 +167,7 @@ let
{
pythonInterpreter = "${python3.interpreter}";
configDirName = lib.toLower binaryName;
skipModuleUpdate = lib.boolToString withOpenASAR;
meta.mainProgram = "disable-breaking-updates.py";
}
''