rio: 0.0.36 -> 0.0.37
[NixPkgs.git] / pkgs / applications / misc / kuro / default.nix
blob55a2e04c93269548ccff52884cfb5ac874161b4e
1 { lib
2 , fetchFromGitHub
3 , fetchYarnDeps
4 , makeWrapper
5 , makeDesktopItem
6 , copyDesktopItems
7 , mkYarnPackage
8 , electron_29
9 }:
11 let
12   electron = electron_29;
14 mkYarnPackage rec {
15   pname = "kuro";
16   version = "9.0.0";
18   src = fetchFromGitHub {
19     owner = "davidsmorais";
20     repo = "kuro";
21     rev = "v${version}";
22     hash = "sha256-9Z/r5T5ZI5aBghHmwiJcft/x/wTRzDlbIupujN2RFfU=";
23   };
25   packageJSON = ./package.json;
27   offlineCache = fetchYarnDeps {
28     yarnLock = "${src}/yarn.lock";
29     hash = "sha256-GTiNv7u1QK/wjQgpka7REuoLn2wjZG59kYJQaZZPycI=";
30   };
32   env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
34   nativeBuildInputs = [
35     makeWrapper
36     copyDesktopItems
37   ];
39   postBuild = ''
40     pushd deps/kuro
42     yarn --offline run electron-builder \
43       --dir \
44       -c.electronDist=${electron}/libexec/electron \
45       -c.electronVersion=${electron.version}
47     popd
48   '';
50   installPhase = ''
51     runHook preInstall
53     # resources
54     mkdir -p "$out/share/lib/kuro"
55     cp -r ./deps/kuro/dist/*-unpacked/{locales,resources{,.pak}} "$out/share/lib/kuro"
57     # icons
58     install -Dm644 ./deps/kuro/static/Icon.png $out/share/icons/hicolor/1024x1024/apps/kuro.png
60     # executable wrapper
61     makeWrapper '${electron}/bin/electron' "$out/bin/kuro" \
62       --add-flags "$out/share/lib/kuro/resources/app.asar" \
63       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
64       --inherit-argv0
66     runHook postInstall
67   '';
68   # Do not attempt generating a tarball for contents again.
69   # note: `doDist = false;` does not work.
70   distPhase = "true";
72   desktopItems = [
73     (makeDesktopItem {
74       name = "kuro";
75       exec = "kuro";
76       icon = "kuro";
77       desktopName = "Kuro";
78       genericName = "Microsoft To-Do Client";
79       comment = meta.description;
80       categories = [ "Office" ];
81       startupWMClass = "kuro";
82     })
83   ];
85   meta = with lib; {
86     changelog = "https://github.com/davidsmorais/kuro/releases/tag/${src.rev}";
87     description = "An unofficial, featureful, open source, community-driven, free Microsoft To-Do app";
88     homepage = "https://github.com/davidsmorais/kuro";
89     license = licenses.mit;
90     mainProgram = "kuro";
91     maintainers = with maintainers; [ ChaosAttractor ];
92     inherit (electron.meta) platforms;
93   };