pulsar: 1.124.0 -> 1.125.0 (#376475)
[NixPkgs.git] / pkgs / by-name / cl / clickup / package.nix
blobe0d2a9e8b4c3196b3158175907452228b22638bc
2   lib,
3   stdenvNoCC,
4   appimageTools,
5   fetchurl,
6   makeWrapper,
7 }:
8 let
9   pname = "clickup";
10   version = "3.3.79";
12   src = fetchurl {
13     # Using archive.org because the website doesn't store older versions of the software.
14     url = "https://web.archive.org/web/20240601173958/https%3A%2F%2Fdesktop.clickup.com%2Flinux";
15     hash = "sha256-jAOYDX9j+ZTqWsSg0rEckKZnErgsIV6+CtUv3M3wNqM=";
16   };
18   appimage = appimageTools.wrapType2 {
19     inherit pname version src;
20     extraPkgs = pkgs: [ pkgs.xorg.libxkbfile ];
21   };
23   appimageContents = appimageTools.extractType2 { inherit pname version src; };
25 stdenvNoCC.mkDerivation {
26   inherit pname version;
28   src = appimage;
30   nativeBuildInputs = [ makeWrapper ];
32   installPhase = ''
33     runHook preInstall
35     mkdir -p $out/
36     cp -r bin $out/bin
38     mkdir -p $out/share/${pname}
39     cp -r ${appimageContents}/locales $out/share/${pname}
40     cp -r ${appimageContents}/resources $out/share/${pname}
41     cp -r --no-preserve=mode ${appimageContents}/usr/share/icons $out/share/
42     find $out/share/icons -name desktop.png -execdir mv {} clickup.png \;
44     install -m 444 -D ${appimageContents}/desktop.desktop $out/share/applications/clickup.desktop
46     substituteInPlace $out/share/applications/clickup.desktop \
47       --replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=clickup' \
48       --replace-fail 'Icon=desktop' 'Icon=clickup'
50     wrapProgram $out/bin/${pname} \
51       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}} --no-update"
53     runHook postInstall
54   '';
56   meta = {
57     description = "All in one project management solution";
58     homepage = "https://clickup.com";
59     license = lib.licenses.unfree;
60     mainProgram = "clickup";
61     maintainers = with lib.maintainers; [ heisfer ];
62     platforms = [ "x86_64-linux" ];
63   };