Merge pull request #209832 from l0b0/feat/create-appimage-run-desktop-entry
appimage-run: Create desktop entry
This commit is contained in:
commit
ddc56938e6
2 changed files with 28 additions and 6 deletions
|
@ -1,13 +1,29 @@
|
||||||
{ appimageTools, buildFHSUserEnv, extraPkgs ? pkgs: [], appimage-run-tests ? null }:
|
{ appimageTools, buildFHSUserEnv, makeDesktopItem, extraPkgs ? pkgs: [], appimage-run-tests ? null }:
|
||||||
|
|
||||||
let
|
let
|
||||||
fhsArgs = appimageTools.defaultFhsEnvArgs;
|
|
||||||
in buildFHSUserEnv (fhsArgs // {
|
|
||||||
name = "appimage-run";
|
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 // {
|
||||||
|
inherit name;
|
||||||
|
|
||||||
targetPkgs = pkgs: [ appimageTools.appimage-exec ]
|
targetPkgs = pkgs: [ appimageTools.appimage-exec ]
|
||||||
++ fhsArgs.targetPkgs pkgs ++ extraPkgs pkgs;
|
++ fhsArgs.targetPkgs pkgs ++ extraPkgs pkgs;
|
||||||
runScript = "appimage-exec.sh";
|
runScript = "appimage-exec.sh";
|
||||||
|
|
||||||
|
extraInstallCommands = ''
|
||||||
|
cp --recursive "${desktopItem}/share" "$out/"
|
||||||
|
'';
|
||||||
|
|
||||||
passthru.tests.appimage-run = appimage-run-tests;
|
passthru.tests.appimage-run = appimage-run-tests;
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ runCommand, fetchurl, appimage-run, glibcLocales, file }:
|
{ runCommand, fetchurl, appimage-run, glibcLocales, file, xdg-utils }:
|
||||||
let
|
let
|
||||||
# any AppImage usable on cli, really
|
# any AppImage usable on cli, really
|
||||||
sample-appImage = fetchurl {
|
sample-appImage = fetchurl {
|
||||||
|
@ -11,21 +11,27 @@ let
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
runCommand "appimage-run-tests" {
|
runCommand "appimage-run-tests" {
|
||||||
buildInputs = [ appimage-run glibcLocales file ];
|
buildInputs = [ appimage-run glibcLocales file xdg-utils ];
|
||||||
meta.platforms = [ "x86_64-linux" ];
|
meta.platforms = [ "x86_64-linux" ];
|
||||||
}
|
}
|
||||||
''
|
''
|
||||||
export HOME=$(mktemp -d)
|
export HOME=$(mktemp -d)
|
||||||
set -x
|
set -x
|
||||||
|
|
||||||
# regression test for #101137, must come first
|
# regression test for #101137, must come first
|
||||||
LANG=fr_FR appimage-run ${sample-appImage} --list ${sample-appImage}
|
LANG=fr_FR appimage-run ${sample-appImage} --list ${sample-appImage}
|
||||||
|
|
||||||
# regression test for #108426
|
# regression test for #108426
|
||||||
cp ${sample-appImage} foo.appImage
|
cp ${sample-appImage} foo.appImage
|
||||||
LANG=fr_FR appimage-run ${sample-appImage} --list foo.appImage
|
LANG=fr_FR appimage-run ${sample-appImage} --list foo.appImage
|
||||||
cp ${owdtest} owdtest.AppImage.gz
|
cp ${owdtest} owdtest.AppImage.gz
|
||||||
gunzip owdtest.AppImage.gz
|
gunzip owdtest.AppImage.gz
|
||||||
appimage-run owdtest.AppImage
|
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
|
set +x
|
||||||
touch $out
|
touch $out
|
||||||
''
|
''
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue