about summary refs log tree commit diff
path: root/pkgs/applications/networking/instant-messengers/caprine-bin
diff options
context:
space:
mode:
authorShamrock Lee <44064051+ShamrockLee@users.noreply.github.com>2021-01-04 23:47:16 +0800
committerShamrock Lee <44064051+ShamrockLee@users.noreply.github.com>2022-01-16 22:09:18 +0000
commit00c7a8ee424c2702951e83136577b71a058d618b (patch)
treeacff8527d1922918c447f5b50a8b6c3e1aa8ee8a /pkgs/applications/networking/instant-messengers/caprine-bin
parentb20c78750e0b0365378b7f221811ff55e33ce60a (diff)
caprine-bin: init at 2.55.2
Diffstat (limited to 'pkgs/applications/networking/instant-messengers/caprine-bin')
-rw-r--r--pkgs/applications/networking/instant-messengers/caprine-bin/build-from-appimage.nix50
-rw-r--r--pkgs/applications/networking/instant-messengers/caprine-bin/build-from-dmg.nix35
-rw-r--r--pkgs/applications/networking/instant-messengers/caprine-bin/default.nix25
3 files changed, 110 insertions, 0 deletions
diff --git a/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-appimage.nix b/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-appimage.nix
new file mode 100644
index 0000000000000..aa0a8f7bfc467
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-appimage.nix
@@ -0,0 +1,50 @@
+{ lib
+, fetchurl
+, appimageTools
+, gtk3
+, gsettings-desktop-schemas
+, xorg
+, pname
+, version
+, sha256
+, metaCommon ? { }
+}:
+
+let
+  name = "${pname}-${version}";
+  src = fetchurl {
+    url = "https://github.com/sindresorhus/caprine/releases/download/v${version}/Caprine-${version}.AppImage";
+    name = "Caprine-${version}.AppImage";
+    inherit sha256;
+  };
+  extracted = appimageTools.extractType2 { inherit name src; };
+in
+(appimageTools.wrapType2 {
+  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
+  '';
+
+  extraPkgs = pkgs: appimageTools.defaultFhsEnvArgs.multiPkgs pkgs;
+
+  extraInstallCommands = ''
+    mv $out/bin/{${name},caprine}
+
+    mkdir -p $out/share
+    "${xorg.lndir}/bin/lndir" -silent "${extracted}/usr/share" "$out/share"
+    ln -s ${extracted}/caprine.png $out/share/icons/caprine.png
+    mkdir $out/share/applications
+    cp ${extracted}/caprine.desktop $out/share/applications/
+    substituteInPlace $out/share/applications/caprine.desktop \
+        --replace AppRun caprine
+  '';
+
+  meta = metaCommon // {
+    platforms = [ "x86_64-linux" ];
+    mainProgram = "caprine";
+  };
+}) // {
+  inherit pname version;
+}
diff --git a/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-dmg.nix b/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-dmg.nix
new file mode 100644
index 0000000000000..3dc457c48826e
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-dmg.nix
@@ -0,0 +1,35 @@
+{ stdenvNoCC
+, lib
+, fetchurl
+, undmg
+, pname
+, version
+, sha256
+, metaCommon ? { }
+}:
+
+stdenvNoCC.mkDerivation {
+  inherit pname version;
+
+  src = fetchurl {
+    url = "https://github.com/sindresorhus/caprine/releases/download/v${version}/Caprine-${version}.dmg";
+    name = "Caprine-${version}.dmg";
+    inherit sha256;
+  };
+
+  sourceRoot = "Caprine.app";
+
+  nativeBuildInputs = [ undmg ];
+
+  installPhase = ''
+    mkdir -p "$out/Applications/Caprine.app"
+    cp -R . "$out/Applications/Caprine.app"
+    mkdir "$out/bin"
+    ln -s "$out/Applications/Caprine.app/Contents/MacOS/Caprine" "$out/bin/caprine"
+  '';
+
+  meta = metaCommon // {
+    platforms = with lib.platforms; darwin;
+    mainProgram = "caprine";
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/caprine-bin/default.nix b/pkgs/applications/networking/instant-messengers/caprine-bin/default.nix
new file mode 100644
index 0000000000000..4be9e03931b26
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/caprine-bin/default.nix
@@ -0,0 +1,25 @@
+{ lib, callPackage, stdenvNoCC }:
+let
+  pname = "caprine";
+  version = "2.55.2";
+  metaCommon = with lib; {
+    description = "An elegant Facebook Messenger desktop app";
+    homepage = "https://sindresorhus.com/caprine";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ShamrockLee ];
+  };
+  x86_64-appimage = callPackage ./build-from-appimage.nix {
+    inherit pname version metaCommon;
+    sha256 = "J7eHVXjWSIcTpLMM8FlGKZzVh6XgpQ0d82kxfMbPyZ4=";
+  };
+  x86_64-dmg = callPackage ./build-from-dmg.nix {
+    inherit pname version metaCommon;
+    sha256 = "du/9N1BFq1s7spPiEDgDbjjcnkA0x1ExhAEpQvmO3aA=";
+  };
+in
+(if stdenvNoCC.isDarwin then x86_64-dmg else x86_64-appimage).overrideAttrs (oldAttrs: {
+  passthru = (oldAttrs.passthru or { }) // { inherit x86_64-appimage x86_64-dmg; };
+  meta = oldAttrs.meta // {
+    platforms = x86_64-appimage.meta.platforms ++ x86_64-dmg.meta.platforms;
+  };
+})