diff --git a/pkgs/by-name/di/discordchatexporter-desktop/package.nix b/pkgs/by-name/di/discordchatexporter-desktop/package.nix index ee3feef5305a..5cdb3a8d8232 100644 --- a/pkgs/by-name/di/discordchatexporter-desktop/package.nix +++ b/pkgs/by-name/di/discordchatexporter-desktop/package.nix @@ -1,8 +1,23 @@ { lib, + stdenv, buildDotnetModule, dotnetCorePackages, fetchFromGitHub, + copyDesktopItems, + desktopToDarwinBundle, + makeDesktopItem, + makeBinaryWrapper, + gitUpdater, + _experimental-update-script-combinators, + libGL, + libx11, + libxcursor, + libxext, + libxi, + libxrandr, + libice, + libsm, }: buildDotnetModule (finalAttrs: { @@ -23,13 +38,71 @@ buildDotnetModule (finalAttrs: { dotnet-sdk = dotnetCorePackages.sdk_10_0; dotnet-runtime = dotnetCorePackages.runtime_10_0; - patches = [ ./settings-path.patch ]; + dotnetBuildFlags = [ + "-p:CSharpier_Bypass=true" + "-p:FirstTargetFrameworks=workaround-for-csharpier-pr-1696" + ]; - postFixup = '' - ln -s $out/bin/DiscordChatExporter $out/bin/discordchatexporter + executables = [ "DiscordChatExporter" ]; + + postPatch = '' + substituteInPlace DiscordChatExporter.Gui/StartOptions.cs \ + --replace-fail 'AppContext.BaseDirectory' 'Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "discordchatexporter")' ''; - passthru.updateScript = ./updater.sh; + nativeBuildInputs = [ + copyDesktopItems + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + desktopToDarwinBundle + makeBinaryWrapper + ]; + + runtimeDeps = lib.optionals stdenv.hostPlatform.isLinux [ + libGL + libx11 + libxcursor + libxext + libxi + libxrandr + libice + libsm + ]; + + postInstall = '' + install -Dm444 $src/favicon.png \ + $out/share/icons/hicolor/256x256/apps/discordchatexporter.png + ''; + + postFixup = + lib.optionalString stdenv.hostPlatform.isLinux '' + ln -sf $out/bin/DiscordChatExporter $out/bin/discordchatexporter + '' + + lib.optionalString stdenv.hostPlatform.isDarwin '' + rm $out/Applications/DiscordChatExporter.app/Contents/MacOS/DiscordChatExporter + makeBinaryWrapper $out/bin/DiscordChatExporter $out/Applications/DiscordChatExporter.app/Contents/MacOS/DiscordChatExporter + ''; + + desktopItems = [ + (makeDesktopItem { + name = "discordchatexporter"; + desktopName = "DiscordChatExporter"; + comment = finalAttrs.meta.description; + exec = "DiscordChatExporter"; + icon = "discordchatexporter"; + categories = [ + "Network" + "Chat" + ]; + }) + ]; + + passthru = { + updateScript = _experimental-update-script-combinators.sequence [ + (gitUpdater { }).command + (finalAttrs.passthru.fetch-deps) + ]; + }; meta = { changelog = "https://github.com/Tyrrrz/DiscordChatExporter/releases/tag/${finalAttrs.version}"; @@ -40,10 +113,8 @@ buildDotnetModule (finalAttrs: { maintainers = with lib.maintainers; [ phanirithvij willow + philocalyst ]; - platforms = [ - "x86_64-linux" - "aarch64-linux" - ]; + platforms = lib.platforms.linux ++ lib.platforms.darwin; }; }) diff --git a/pkgs/by-name/di/discordchatexporter-desktop/settings-path.patch b/pkgs/by-name/di/discordchatexporter-desktop/settings-path.patch deleted file mode 100644 index bbe872b25137..000000000000 --- a/pkgs/by-name/di/discordchatexporter-desktop/settings-path.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff --git a/DiscordChatExporter.Gui/StartOptions.cs b/DiscordChatExporter.Gui/StartOptions.cs -index d17752a..8df18c8 100644 ---- a/DiscordChatExporter.Gui/StartOptions.cs -+++ b/DiscordChatExporter.Gui/StartOptions.cs -@@ -21,7 +21,13 @@ public partial class StartOptions - ? Path.EndsInDirectorySeparator(path) || Directory.Exists(path) - ? Path.Combine(path, "Settings.dat") - : path -- : Path.Combine(AppContext.BaseDirectory, "Settings.dat"), -+ : Path.Combine( -+ System.IO.Path.Combine( -+ Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), -+ "discordchatexporter" -+ ), -+ "Settings.dat" -+ ), - IsAutoUpdateAllowed = !( - Environment.GetEnvironmentVariable("DISCORDCHATEXPORTER_ALLOW_AUTO_UPDATE") - is { } env diff --git a/pkgs/by-name/di/discordchatexporter-desktop/updater.sh b/pkgs/by-name/di/discordchatexporter-desktop/updater.sh deleted file mode 100755 index 327db92945ad..000000000000 --- a/pkgs/by-name/di/discordchatexporter-desktop/updater.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -I nixpkgs=./. -i bash -p curl jq common-updater-scripts -set -eo pipefail -cd "$(dirname "${BASH_SOURCE[0]}")" - -new_version="$(curl -s ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} "https://api.github.com/repos/tyrrrz/DiscordChatExporter/releases?per_page=1" | jq -r '.[0].name')" -old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./package.nix)" -if [[ "$new_version" == "$old_version" ]]; then - echo "Up to date" - exit 0 -fi - -cd ../../../.. -update-source-version discordchatexporter-desktop "$new_version" --file=./pkgs/by-name/di/discordchatexporter-desktop/package.nix -$(nix-build -A discordchatexporter-desktop.fetch-deps --no-out-link)