Unverified Commit ddc56938 authored by Guillaume Girol's avatar Guillaume Girol Committed by GitHub
Browse files

Merge pull request #209832 from l0b0/feat/create-appimage-run-desktop-entry

appimage-run: Create desktop entry
parents 28065039 73981dd9
Loading
Loading
Loading
Loading
+18 −2
Original line number Diff line number Diff line
{ appimageTools, buildFHSUserEnv, extraPkgs ? pkgs: [], appimage-run-tests ? null }:
{ appimageTools, buildFHSUserEnv, makeDesktopItem, extraPkgs ? pkgs: [], appimage-run-tests ? null }:

let
  name = "appimage-run";

  fhsArgs = appimageTools.defaultFhsEnvArgs;

  desktopItem = makeDesktopItem {
    inherit name;
    exec = name;
    desktopName = name;
    genericName = "AppImage runner";
    noDisplay = true;
    mimeTypes = ["application/vnd.appimage" "application/x-iso9660-appimage"];
    categories = ["PackageManager" "Utility"];
  };
in buildFHSUserEnv (fhsArgs // {
  name = "appimage-run";
  inherit name;

  targetPkgs = pkgs: [ appimageTools.appimage-exec ]
    ++ fhsArgs.targetPkgs pkgs ++ extraPkgs pkgs;
  runScript = "appimage-exec.sh";

  extraInstallCommands = ''
    cp --recursive "${desktopItem}/share" "$out/"
  '';

  passthru.tests.appimage-run = appimage-run-tests;
})
+9 −3
Original line number Diff line number Diff line
{ runCommand, fetchurl, appimage-run, glibcLocales, file }:
{ runCommand, fetchurl, appimage-run, glibcLocales, file, xdg-utils }:
let
  # any AppImage usable on cli, really
  sample-appImage = fetchurl {
@@ -11,21 +11,27 @@ let
  };
in
  runCommand "appimage-run-tests" {
    buildInputs = [ appimage-run glibcLocales file ];
    buildInputs = [ appimage-run glibcLocales file xdg-utils ];
    meta.platforms = [ "x86_64-linux" ];
  }
  ''
    export HOME=$(mktemp -d)
    set -x

    # regression test for #101137, must come first
    LANG=fr_FR appimage-run ${sample-appImage} --list ${sample-appImage}

    # regression test for #108426
    cp ${sample-appImage} foo.appImage
    LANG=fr_FR appimage-run ${sample-appImage} --list foo.appImage
    cp ${owdtest} owdtest.AppImage.gz
    gunzip owdtest.AppImage.gz
    appimage-run owdtest.AppImage

    # Verify desktop entry
    XDG_DATA_DIRS="${appimage-run}/share"
    [[ "$(xdg-mime query default application/vnd.appimage)" == '${appimage-run.name}.desktop' ]]

    set +x
    touch $out
  ''