about summary refs log tree commit diff
path: root/pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft
diff options
context:
space:
mode:
authorTomas Antonio Lopez <entropy.overseer@entropic.network>2023-11-09 12:51:25 +0100
committerTomas Antonio Lopez <entropy.overseer@entropic.network>2023-11-09 12:51:25 +0100
commit6f06a5e83a30cd558be24cbcaa7a18072252c629 (patch)
tree126134413fda34ac580e721220b6fbb82d0bee33 /pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft
parentf895a4ef0f01f9d2af2370533829c4f03ec408f4 (diff)
emacsPackages.notdeft: init at 20211204.0846
Diffstat (limited to 'pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft')
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft/default.nix75
1 files changed, 75 insertions, 0 deletions
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft/default.nix
new file mode 100644
index 0000000000000..f9af8c465b930
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft/default.nix
@@ -0,0 +1,75 @@
+{ lib
+, stdenv
+, trivialBuild
+, fetchFromGitHub
+, emacs
+, hydra
+, ivy
+, pkg-config
+, tclap
+, xapian
+  # Include pre-configured hydras
+, withHydra ? false
+  # Include Ivy integration
+, withIvy ? false
+}:
+
+let
+  pname = "notdeft";
+  version = "20211204.0846";
+
+  src = fetchFromGitHub {
+    owner = "hasu";
+    repo = "notdeft";
+    rev = "1b7054dcfc3547a7cafeb621552cec01d0540478";
+    hash = "sha256-LMMLJFVpmoE/y3MqrgY2fmsehmzk6TkLsVoHmFUxiSw=";
+  };
+
+  # Xapian bindings for NotDeft
+  notdeft-xapian = stdenv.mkDerivation {
+    pname = "notdeft-xapian";
+    inherit version src;
+
+    sourceRoot = "${src.name}/xapian";
+
+    nativeBuildInputs = [ pkg-config tclap xapian ];
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/bin
+      cp notdeft-xapian $out/bin
+
+      runHook postInstall
+    '';
+  };
+in
+trivialBuild {
+  inherit pname version src;
+  packageRequires = lib.optional withHydra hydra
+    ++ lib.optional withIvy ivy;
+  buildInputs = [ xapian ];
+
+  postPatch = ''
+    substituteInPlace notdeft-xapian.el \
+      --replace 'defcustom notdeft-xapian-program nil' \
+                "defcustom notdeft-xapian-program \"${notdeft-xapian}/bin/notdeft-xapian\""
+  '';
+
+  # Extra modules are contained in the extras/ directory
+  preBuild = lib.optionalString withHydra ''
+    mv extras/notdeft-{mode-hydra,global-hydra}.el ./
+  '' +
+  lib.optionalString withIvy ''
+    mv extras/notdeft-ivy.el ./
+  '' + ''
+    rm -r extras/
+  '';
+
+  meta = with lib; {
+    homepage = "https://tero.hasu.is/notdeft/";
+    description = "Fork of Deft that uses Xapian as a search engine";
+    maintainers = [ maintainers.nessdoor ];
+    platforms = platforms.linux;
+  };
+}