discord: add darwin to disable-breaking-updates.py

This commit is contained in:
DontEatOreo
2024-08-04 22:56:15 +03:00
parent 96f5069dd0
commit 7421ff3aa2
2 changed files with 30 additions and 7 deletions
@@ -1,8 +1,21 @@
{ pname, version, src, meta, stdenv, binaryName, desktopName, lib, undmg, makeWrapper, writeScript
{ pname, version, src, meta, stdenv, binaryName, desktopName, lib, undmg, makeWrapper, writeScript, python3, runCommand
, branch
, withOpenASAR ? false, openasar
, withVencord ? false, vencord }:
let
disableBreakingUpdates = runCommand "disable-breaking-updates.py"
{
pythonInterpreter = "${python3.interpreter}";
configDirName = lib.toLower binaryName;
meta.mainProgram = "disable-breaking-updates.py";
} ''
mkdir -p $out/bin
cp ${./disable-breaking-updates.py} $out/bin/disable-breaking-updates.py
substituteAllInPlace $out/bin/disable-breaking-updates.py
chmod +x $out/bin/disable-breaking-updates.py
'';
in
stdenv.mkDerivation {
inherit pname version src meta;
@@ -18,7 +31,8 @@ stdenv.mkDerivation {
# wrap executable to $out/bin
mkdir -p $out/bin
makeWrapper "$out/Applications/${desktopName}.app/Contents/MacOS/${binaryName}" "$out/bin/${binaryName}"
makeWrapper "$out/Applications/${desktopName}.app/Contents/MacOS/${binaryName}" "$out/bin/${binaryName}" \
--run ${lib.getExe disableBreakingUpdates}
runHook postInstall
'';
@@ -33,6 +47,8 @@ stdenv.mkDerivation {
'';
passthru = {
# make it possible to run disableBreakingUpdates standalone
inherit disableBreakingUpdates;
updateScript = writeScript "discord-update-script" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gnugrep common-updater-scripts
@@ -17,12 +17,19 @@ import os
import sys
from pathlib import Path
XDG_CONFIG_HOME = os.environ.get("XDG_CONFIG_HOME") or os.path.join(
os.path.expanduser("~"), ".config"
)
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)
settings_path = Path(f"{XDG_CONFIG_HOME}/@configDirName@/settings.json")
settings_path_temp = Path(f"{XDG_CONFIG_HOME}/@configDirName@/settings.json.tmp")
if config_home is None:
print("[Nix] Unsupported operating system.")
sys.exit(1)
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")
if os.path.exists(settings_path):
with settings_path.open(encoding="utf-8") as settings_file: