about summary refs log tree commit diff
path: root/pkgs/applications/misc/joplin-desktop/default.nix
diff options
context:
space:
mode:
authorNikolay Korotkiy <sikmir@gmail.com>2020-09-23 20:54:10 +0300
committerNikolay Korotkiy <sikmir@gmail.com>2020-09-23 21:53:21 +0300
commit338b02d59f4ce1b0577c70fd938251d2e9b5be75 (patch)
tree23d02b2d605dc3f0ef3e2ed6a31c002c7115d0b4 /pkgs/applications/misc/joplin-desktop/default.nix
parent66d06625480eeca97c33fb136bb5d4f7a4f9955c (diff)
joplin-desktop: 1.0.245 -> 1.1.4
Diffstat (limited to 'pkgs/applications/misc/joplin-desktop/default.nix')
-rw-r--r--pkgs/applications/misc/joplin-desktop/default.nix81
1 files changed, 54 insertions, 27 deletions
diff --git a/pkgs/applications/misc/joplin-desktop/default.nix b/pkgs/applications/misc/joplin-desktop/default.nix
index 7b99f829224b1..8d161b1d4e417 100644
--- a/pkgs/applications/misc/joplin-desktop/default.nix
+++ b/pkgs/applications/misc/joplin-desktop/default.nix
@@ -1,39 +1,31 @@
-{ appimageTools, fetchurl, lib, gsettings-desktop-schemas, gtk3, makeDesktopItem }:
+{ stdenv, appimageTools, fetchurl, gsettings-desktop-schemas, gtk3, undmg }:
 
 let
   pname = "joplin-desktop";
-  version = "1.0.245";
+  version = "1.1.4";
   name = "${pname}-${version}";
 
+  inherit (stdenv.hostPlatform) system;
+  throwSystem = throw "Unsupported system: ${system}";
+
+  suffix = {
+    x86_64-linux = "AppImage";
+    x86_64-darwin = "dmg";
+  }.${system} or throwSystem;
+
   src = fetchurl {
-    url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.AppImage";
-    sha256 = "1xybzjixqmp95b2a97kbbygn0jwndws9115cd7mbw8czl7nshdq6";
+    url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.${suffix}";
+    sha256 = {
+      x86_64-linux = "1jgmjwjl2y3nrywnwidpk6p31sypy3gjghmzzqkrgjpf77ccbssm";
+      x86_64-darwin = "1v06k4qrk3n1ncgpmnqp4axmn7gvs3mgbvf8n6ldhgjhj3hq9day";
+    }.${system} or throwSystem;
   };
 
   appimageContents = appimageTools.extractType2 {
     inherit name src;
   };
-in appimageTools.wrapType2 rec {
-  inherit name src;
-
-  profile = ''
-    export LC_ALL=C.UTF-8
-    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
-  '';
-
-  multiPkgs = null; # no 32bit needed
-  extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
-  extraInstallCommands = ''
-    mv $out/bin/{${name},${pname}}
-    install -m 444 -D ${appimageContents}/joplin.desktop $out/share/applications/joplin.desktop
-    install -m 444 -D ${appimageContents}/joplin.png \
-      $out/share/pixmaps/joplin.png
-    substituteInPlace $out/share/applications/joplin.desktop \
-      --replace 'Exec=AppRun' 'Exec=${pname}'
-  '';
-
-
-  meta = with lib; {
+
+  meta = with stdenv.lib; {
     description = "An open source note taking and to-do application with synchronisation capabilities";
     longDescription = ''
       Joplin is a free, open source note taking and to-do application, which can
@@ -45,6 +37,41 @@ in appimageTools.wrapType2 rec {
     homepage = "https://joplinapp.org";
     license = licenses.mit;
     maintainers = with maintainers; [ hugoreeves ];
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+  };
+
+  linux = appimageTools.wrapType2 rec {
+    inherit name src meta;
+
+    profile = ''
+      export LC_ALL=C.UTF-8
+      export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+    '';
+
+    multiPkgs = null; # no 32bit needed
+    extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
+    extraInstallCommands = ''
+      mv $out/bin/{${name},${pname}}
+      install -Dm444 ${appimageContents}/joplin.desktop -t $out/share/applications
+      install -Dm444 ${appimageContents}/joplin.png -t $out/share/pixmaps
+      substituteInPlace $out/share/applications/joplin.desktop \
+        --replace 'Exec=AppRun' 'Exec=${pname}'
+    '';
+  };
+
+  darwin = stdenv.mkDerivation {
+    inherit name src meta;
+
+    nativeBuildInputs = [ undmg ];
+
+    sourceRoot = "Joplin.app";
+
+    installPhase = ''
+      mkdir -p $out/Applications/Joplin.app
+      cp -R . $out/Applications/Joplin.app
+    '';
   };
-}
+in
+if stdenv.isDarwin
+then darwin
+else linux