Unverified Commit 08ed4a9c authored by David McFarland's avatar David McFarland Committed by GitHub
Browse files

nexusmods-app: fix desktop entry (#421259)

parents 50948eb6 8d70e895
Loading
Loading
Loading
Loading
+34 −3
Original line number Diff line number Diff line
@@ -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 = {