nexusmods-app: fix desktop entry (#421259)

This commit is contained in:
David McFarland
2025-06-30 21:56:02 -03:00
committed by GitHub
+34 -3
View File
@@ -2,7 +2,6 @@
_7zz,
avalonia,
buildDotnetModule,
copyDesktopItems,
desktop-file-utils,
dotnetCorePackages,
fetchgit,
@@ -51,7 +50,6 @@ buildDotnetModule (finalAttrs: {
nativeCheckInputs = [ _7zz ];
nativeBuildInputs = [
copyDesktopItems
imagemagick # For resizing SVG icon in postInstall
];
@@ -75,11 +73,18 @@ buildDotnetModule (finalAttrs: {
];
postInstall = ''
${lib.strings.toShellVars {
inherit (finalAttrs.meta) mainProgram;
INSTALL_EXEC = "\${INSTALL_EXEC}";
INSTALL_TRYEXEC = "\${INSTALL_TRYEXEC}";
}}
# Desktop entry
# As per #308324, use mainProgram from PATH, instead of $out/bin/NexusMods.App
install -D -m 444 -t $out/share/applications src/NexusMods.App/com.nexusmods.app.desktop
substituteInPlace $out/share/applications/com.nexusmods.app.desktop \
--replace-fail '${"$"}{INSTALL_EXEC}' "${finalAttrs.meta.mainProgram}"
--replace-fail "$INSTALL_EXEC" "$mainProgram" \
--replace-fail "$INSTALL_TRYEXEC" "$mainProgram"
# AppStream metadata
install -D -m 444 -t $out/share/metainfo src/NexusMods.App/com.nexusmods.app.metainfo.xml
@@ -143,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 = {