nexusmods-app: fix desktop entry (#421259)
This commit is contained in:
@@ -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 = {
|
||||
|
||||
Reference in New Issue
Block a user