about summary refs log tree commit diff
path: root/pkgs/applications/misc/passky-desktop/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/misc/passky-desktop/default.nix')
-rw-r--r--pkgs/applications/misc/passky-desktop/default.nix59
1 files changed, 59 insertions, 0 deletions
diff --git a/pkgs/applications/misc/passky-desktop/default.nix b/pkgs/applications/misc/passky-desktop/default.nix
new file mode 100644
index 000000000000..f247329158ac
--- /dev/null
+++ b/pkgs/applications/misc/passky-desktop/default.nix
@@ -0,0 +1,59 @@
+{ lib, stdenv, fetchurl, appimageTools, undmg }:
+
+let
+  pname = "passky-desktop";
+  version = "5.0.0";
+
+  srcs = {
+    x86_64-linux = fetchurl {
+      url = "https://github.com/Rabbit-Company/Passky-Desktop/releases/download/v${version}/Passky-${version}.AppImage";
+      sha256 = "19sy9y2bcxrf10ifszinh4yn32q3032h3d1qxm046zffzl069807";
+    };
+    x86_64-darwin = fetchurl {
+      url = "https://github.com/Rabbit-Company/Passky-Desktop/releases/download/v${version}/Passky-${version}.dmg";
+      sha256 = "sha256-lclJOaYe+2XeKhJb2WcOAzjBMzK3YEmlS4rXuRUJYU0=";
+    };
+  };
+  src = srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
+  appimageContents = appimageTools.extract { inherit pname version src; };
+  meta = with lib; {
+    homepage = "https://passky.org";
+    downloadPage = "https://github.com/Rabbit-Company/Passky-Desktop/releases";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ akkesm ];
+    platforms = builtins.attrNames srcs;
+  };
+
+  linux = appimageTools.wrapType2 {
+    inherit pname version src meta;
+
+    extraInstallCommands = ''
+      mv $out/bin/${pname}-${version} $out/bin/${pname}
+
+      install -D ${appimageContents}/passky.desktop \
+        $out/share/applications/${pname}.desktop
+
+      substituteInPlace $out/share/applications/${pname}.desktop \
+        --replace 'Exec=AppRun' 'Exec=${pname}'
+
+      cp -r ${appimageContents}/usr/share/icons $out/share
+    '';
+  };
+
+  darwin = stdenv.mkDerivation {
+    inherit pname version src meta;
+
+    nativeBuildInputs = [ undmg ];
+
+    sourceRoot = ".";
+
+    installPhase = ''
+      mkdir -p $out/Applications
+      cp -r *.app $out/Applications
+    '';
+  };
+in
+if stdenv.isDarwin
+  then darwin
+  else linux