about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/package-management/appimage-run/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/package-management/appimage-run/default.nix')
-rw-r--r--nixpkgs/pkgs/tools/package-management/appimage-run/default.nix29
1 files changed, 29 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/package-management/appimage-run/default.nix b/nixpkgs/pkgs/tools/package-management/appimage-run/default.nix
new file mode 100644
index 000000000000..286fd9d7ff68
--- /dev/null
+++ b/nixpkgs/pkgs/tools/package-management/appimage-run/default.nix
@@ -0,0 +1,29 @@
+{ appimageTools, buildFHSEnv, 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 buildFHSEnv (fhsArgs // {
+  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;
+})