From 8d70e8957ef0e3733d38fa09ce759980c01302c5 Mon Sep 17 00:00:00 2001 From: Matt Sturgeon Date: Mon, 30 Jun 2025 13:59:38 +0100 Subject: [PATCH] nexusmods-app: validate desktop entry Avoid future regressions related to new desktop entry templates by validating the final desktop entry file doesn't contain any "$" chars. Additionally, validate using `desktop-file-validate` from desktop-file-utils. --- pkgs/by-name/ne/nexusmods-app/package.nix | 26 +++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/pkgs/by-name/ne/nexusmods-app/package.nix b/pkgs/by-name/ne/nexusmods-app/package.nix index f386b51ecb15..35a6aa834ef2 100644 --- a/pkgs/by-name/ne/nexusmods-app/package.nix +++ b/pkgs/by-name/ne/nexusmods-app/package.nix @@ -148,6 +148,32 @@ buildDotnetModule (finalAttrs: { "NexusMods.Games.FOMOD.Tests.FomodXmlInstallerTests.InstallsFilesSimple_UsingRar" ]; + doInstallCheck = true; + + nativeInstallCheckInputs = [ + desktop-file-utils + ]; + + # Upstream use ${...} templates in the desktop entry, so assert that we haven't missed any + # See https://github.com/NixOS/nixpkgs/issues/421241 + installCheckPhase = '' + runHook preInstallCheck + + echo 'Checking for issues in $out/share/applications/com.nexusmods.app.desktop' + ( + cd $out/share/applications + desktop-file-validate com.nexusmods.app.desktop + if grep '\$' com.nexusmods.app.desktop \ + --with-filename --line-number + then + echo 'error: unexpected "$"' + exit 1 + fi + ) &>/dev/stderr + + runHook postInstallCheck + ''; + passthru.updateScript = nix-update-script { }; meta = {