about summary refs log tree commit diff
path: root/pkgs/applications/office/micropad/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/office/micropad/default.nix')
-rw-r--r--pkgs/applications/office/micropad/default.nix142
1 files changed, 65 insertions, 77 deletions
diff --git a/pkgs/applications/office/micropad/default.nix b/pkgs/applications/office/micropad/default.nix
index c50e14015f3be..46c318ffbd11f 100644
--- a/pkgs/applications/office/micropad/default.nix
+++ b/pkgs/applications/office/micropad/default.nix
@@ -2,100 +2,88 @@
 , stdenv
 , fetchFromGitHub
 , fetchYarnDeps
+, yarnBuildHook
 , fetchzip
 , makeWrapper
 , makeDesktopItem
-, mkYarnPackage
 , electron
 , desktopToDarwinBundle
 , copyDesktopItems
 }:
-let
-  executableName = "micropad";
-in
-  mkYarnPackage rec {
-    pname = "micropad";
-    version = "4.5.1";
 
-    src = fetchFromGitHub {
-      owner = "MicroPad";
-      repo = "Micropad-Electron";
-      rev = "v${version}";
-      hash = "sha256-z+g+FwmoX4Qqf+v4BVLCtfrXwGiAUFlPLQQhp2CMhLU=";
-    };
+stdenv.mkDerivation (finalAttrs: {
+  pname = "micropad";
+  version = "4.5.1";
 
-    micropad-core = fetchzip {
-      url = "https://github.com/MicroPad/MicroPad-Core/releases/download/v${version}/micropad.tar.xz";
-      hash = "sha256-y13PVA/AKKsc5q7NDwZFasb7fOo+56IW8qbTbsm2WWc=";
-    };
+  src = fetchFromGitHub {
+    owner = "MicroPad";
+    repo = "Micropad-Electron";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-z+g+FwmoX4Qqf+v4BVLCtfrXwGiAUFlPLQQhp2CMhLU=";
+  };
 
-    packageJSON = ./package.json;
+  # This project can't be built from source currently, because Nixpkgs lacks
+  # ecosystem for https://bun.sh
+  micropad-core = fetchzip {
+    url = "https://github.com/MicroPad/MicroPad-Core/releases/download/v${finalAttrs.version}/micropad.tar.xz";
+    hash = "sha256-y13PVA/AKKsc5q7NDwZFasb7fOo+56IW8qbTbsm2WWc=";
+  };
 
-    offlineCache = fetchYarnDeps {
-      yarnLock = "${src}/yarn.lock";
-      hash = "sha256-ESYSHuHLNsn3EYKIe2p0kg142jyC0USB+Ef//oGeF08=";
-    };
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/yarn.lock";
+    hash = "sha256-ESYSHuHLNsn3EYKIe2p0kg142jyC0USB+Ef//oGeF08=";
+  };
 
-    nativeBuildInputs = [ copyDesktopItems makeWrapper ]
-      ++ lib.optionals stdenv.isDarwin [ desktopToDarwinBundle ];
+  nativeBuildInputs = [ yarnBuildHook copyDesktopItems makeWrapper ]
+    ++ lib.optionals stdenv.isDarwin [ desktopToDarwinBundle ];
 
-    buildPhase = ''
-      runHook preBuild
-      pushd deps/micropad/
-      yarn --offline build
-      popd
-      runHook postBuild
-    '';
+  installPhase = ''
+    runHook preInstall
 
-    installPhase = ''
-      runHook preInstall
+    # resources
+    mkdir -p "$out/share/"
+    cp -r './deps/micropad' "$out/share/micropad"
+    ln -s '${finalAttrs.micropad-core}' "$out/share/micropad/core"
+    rm "$out/share/micropad/node_modules"
+    cp -r './node_modules' "$out/share/micropad"
 
-      # resources
-      mkdir -p "$out/share/"
-      cp -r './deps/micropad' "$out/share/micropad"
-      ln -s '${micropad-core}' "$out/share/micropad/core"
-      rm "$out/share/micropad/node_modules"
-      cp -r './node_modules' "$out/share/micropad"
+    # icons
+    for icon in $out/share/micropad/build/icons/*.png; do
+      mkdir -p "$out/share/icons/hicolor/$(basename $icon .png | sed -e 's/^icon-//')/apps"
+      ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png | sed -e 's/^icon-//')/apps/micropad.png"
+    done
 
-      # icons
-      for icon in $out/share/micropad/build/icons/*.png; do
-        mkdir -p "$out/share/icons/hicolor/$(basename $icon .png | sed -e 's/^icon-//')/apps"
-        ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png | sed -e 's/^icon-//')/apps/micropad.png"
-      done
+    # executable wrapper
+    makeWrapper '${electron}/bin/electron' "$out/bin/micropad" \
+      --add-flags "$out/share/micropad" \
+      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
 
-      # executable wrapper
-      makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \
-        --add-flags "$out/share/micropad" \
-        --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
+    runHook postInstall
+  '';
 
-      runHook postInstall
-    '';
+  # Do not attempt generating a tarball for micropad again.
+  doDist = false;
 
-    # Do not attempt generating a tarball for micropad again.
-    doDist = false;
+  # The desktop item properties should be kept in sync with data from upstream:
+  # https://github.com/MicroPad/MicroPad-Electron/blob/master/package.json
+  desktopItems = [
+    (makeDesktopItem {
+      name = "micropad";
+      exec = "micropad %u";
+      icon = "micropad";
+      desktopName = "µPad";
+      startupWMClass = "µPad";
+      comment = finalAttrs.meta.description;
+      categories = ["Office"];
+    })
+  ];
 
-    # The desktop item properties should be kept in sync with data from upstream:
-    # https://github.com/MicroPad/MicroPad-Electron/blob/master/package.json
-    desktopItems = [
-      (makeDesktopItem {
-        name = "micropad";
-        exec = "${executableName} %u";
-        icon = "micropad";
-        desktopName = "µPad";
-        startupWMClass = "µPad";
-        comment = meta.description;
-        categories = ["Office"];
-      })
-    ];
-
-    passthru.updateScript = ./update.sh;
-
-    meta = with lib; {
-      description = "A powerful note-taking app that helps you organise + take notes without restrictions";
-      homepage = "https://getmicropad.com/";
-      license = licenses.mpl20;
-      maintainers = with maintainers; [rhysmdnz];
-      inherit (electron.meta) platforms;
-      mainProgram = "micropad";
-    };
-  }
+  meta = {
+    description = "A powerful note-taking app that helps you organise + take notes without restrictions";
+    homepage = "https://getmicropad.com/";
+    license = lib.licenses.mpl20;
+    maintainers = with lib.maintainers; [rhysmdnz];
+    inherit (electron.meta) platforms;
+    mainProgram = "micropad";
+  };
+})