python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / applications / office / micropad / default.nix
blob184157d9d01187451bca994c33e0729670874aa1
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , fetchzip
5 , makeWrapper
6 , makeDesktopItem
7 , mkYarnPackage
8 , electron
9 , desktopToDarwinBundle
10 , copyDesktopItems
12 let
13   executableName = "micropad";
15   mkYarnPackage rec {
16     pname = "micropad";
17     version = "4.2.0";
19     src = fetchFromGitHub {
20       owner = "MicroPad";
21       repo = "Micropad-Electron";
22       rev = "v${version}";
23       sha256 = "sha256-XylyQd4AhvrwJzBZXab7rA2IrZcqzEv8BANk+ozYyHk=";
24     };
26     micropad-core = fetchzip {
27       url = "https://github.com/MicroPad/MicroPad-Core/releases/download/v${version}/micropad.tar.xz";
28       sha256 = "0vddz95c1khalvl2a9zccy36j8s7862gpqcqlrvp1pn4bbp2pm3s";
29     };
31     packageJSON = ./package.json;
32     yarnLock = ./yarn.lock;
33     yarnNix = ./yarn.nix;
35     nativeBuildInputs = [ copyDesktopItems makeWrapper ]
36       ++ lib.optionals stdenv.isDarwin [ desktopToDarwinBundle ];
38     buildPhase = ''
39       runHook preBuild
40       pushd deps/micropad/
41       yarn --offline build
42       popd
43       runHook postBuild
44     '';
46     installPhase = ''
47       runHook preInstall
49       # resources
50       mkdir -p "$out/share/"
51       cp -r './deps/micropad' "$out/share/micropad"
52       ln -s '${micropad-core}' "$out/share/micropad/core"
53       rm "$out/share/micropad/node_modules"
54       cp -r './node_modules' "$out/share/micropad"
56       # icons
57       for icon in $out/share/micropad/build/icons/*.png; do
58         mkdir -p "$out/share/icons/hicolor/$(basename $icon .png | sed -e 's/^icon-//')/apps"
59         ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png | sed -e 's/^icon-//')/apps/micropad.png"
60       done
62       # executable wrapper
63       makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \
64         --add-flags "$out/share/micropad" \
65         --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
67       runHook postInstall
68     '';
70     # Do not attempt generating a tarball for micropad again.
71     doDist = false;
73     # The desktop item properties should be kept in sync with data from upstream:
74     # https://github.com/MicroPad/MicroPad-Electron/blob/master/package.json
75     desktopItems = [
76       (makeDesktopItem {
77         name = "micropad";
78         exec = "${executableName} %u";
79         icon = "micropad";
80         desktopName = "µPad";
81         startupWMClass = "µPad";
82         comment = meta.description;
83         categories = ["Office"];
84       })
85     ];
87     passthru.updateScript = ./update.sh;
89     meta = with lib; {
90       description = "A powerful note-taking app that helps you organise + take notes without restrictions";
91       homepage = "https://getmicropad.com/";
92       license = licenses.mpl20;
93       maintainers = with maintainers; [rhysmdnz];
94       inherit (electron.meta) platforms;
95     };
96   }