acr-cli: init at 0.14 (#359508)
[NixPkgs.git] / pkgs / by-name / re / revolt-desktop / package.nix
blobf941225770b24c34886ed1b15dd430aceb93f718
1 { stdenvNoCC
2 , lib
3 , fetchurl
4 , fetchzip
5 , appimageTools
6 , makeWrapper
7 , electron
8 }:
9 (stdenvNoCC.mkDerivation {
10   pname = "revolt-desktop";
11   version = "1.0.6";
12   dontConfigure = true;
13   dontBuild = true;
14   meta = with lib; {
15     description = "Open source user-first chat platform";
16     homepage = "https://revolt.chat/";
17     changelog = "https://github.com/revoltchat/desktop/releases/tag/v${version}";
18     license = licenses.agpl3Only;
19     maintainers = with maintainers; [
20       heyimnova
21       caralice
22     ];
23     platforms = platforms.linux ++ platforms.darwin;
24     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
25     mainProgram = "revolt-desktop";
26   };
27   nativeBuildInputs = [ makeWrapper ];
28 }).overrideAttrs
29   (
30     final: prev:
31     let
32       inherit (prev) pname version;
33     in
34     if stdenvNoCC.hostPlatform.isLinux then
35       {
36         src = fetchurl {
37           url = "https://github.com/revoltchat/desktop/releases/download/v${version}/Revolt-linux.AppImage";
38           hash = "sha256-Wsm6ef2Reenq3/aKGaP2yzlOuLKaxKtRHCLLMxvWUUY=";
39         };
41         appimageContents = appimageTools.extractType2 { inherit (final) src pname version; };
43         dontUnpack = true;
45         installPhase = ''
46           runHook preInstall
48           mkdir -p $out/bin $out/share/{applications,revolt-desktop}
50           cp -a ${final.appimageContents}/{locales,resources} $out/share/revolt-desktop
51           cp -a ${final.appimageContents}/revolt-desktop.desktop $out/share/applications/revolt-desktop.desktop
52           cp -a ${final.appimageContents}/usr/share/icons $out/share/icons
54           substituteInPlace $out/share/applications/revolt-desktop.desktop \
55             --replace 'Exec=AppRun' 'Exec=revolt-desktop'
57           runHook postInstall
58         '';
60         postFixup = ''
61           makeWrapper ${electron}/bin/electron $out/bin/revolt-desktop \
62             --add-flags $out/share/revolt-desktop/resources/app.asar \
63             --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=WaylandWindowDecorations}}"
64         '';
65       }
66     else
67       assert stdenvNoCC.hostPlatform.isDarwin;
68       {
69         src = fetchzip {
70           url = "https://github.com/revoltchat/desktop/releases/download/v${version}/Revolt-${version}-mac.zip";
71           hash = "sha256-XxmKcIfJtHfi6SahrRHMeTAuyVqiN9Yhayjis10vD2w=";
72           stripRoot = false;
73         };
75         installPhase = ''
76           runHook preInstall
78           mkdir -p "$out/Applications/" "$out/bin/"
79           mv Revolt.app "$out/Applications/"
80           makeWrapper "$out/Applications/Revolt.app/Contents/MacOS/Revolt" "$out/bin/revolt-desktop"
82           runHook postInstall
83         '';
84       }
85   )