summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/applications/networking/browsers/firefox/wrapper.nix3
-rw-r--r--pkgs/tools/networking/bukubrow/default.nix37
-rw-r--r--pkgs/top-level/all-packages.nix2
3 files changed, 41 insertions, 1 deletions
diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix
index 584dca63297c..d2e7c59faff8 100644
--- a/pkgs/applications/networking/browsers/firefox/wrapper.nix
+++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -7,7 +7,7 @@
 , trezor-bridge, bluejeans, djview4, adobe-reader
 , google_talk_plugin, fribid, gnome3/*.gnome-shell*/
 , esteidfirefoxplugin
-, browserpass, chrome-gnome-shell, uget-integrator, plasma-browser-integration
+, browserpass, chrome-gnome-shell, uget-integrator, plasma-browser-integration, bukubrow
 , udev
 , kerberos
 }:
@@ -61,6 +61,7 @@ let
       nativeMessagingHosts =
         ([ ]
           ++ lib.optional (cfg.enableBrowserpass or false) (lib.getBin browserpass)
+          ++ lib.optional (cfg.enableBukubrow or false) bukubrow
           ++ lib.optional (cfg.enableGnomeExtensions or false) chrome-gnome-shell
           ++ lib.optional (cfg.enableUgetIntegrator or false) uget-integrator
           ++ lib.optional (cfg.enablePlasmaBrowserIntegration or false) plasma-browser-integration
diff --git a/pkgs/tools/networking/bukubrow/default.nix b/pkgs/tools/networking/bukubrow/default.nix
new file mode 100644
index 000000000000..dad1f6f5e940
--- /dev/null
+++ b/pkgs/tools/networking/bukubrow/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, rustPlatform, fetchFromGitHub, sqlite }:
+
+rustPlatform.buildRustPackage rec {
+  name = "bukubrow-${version}";
+  version = "2.4.0";
+
+  src = fetchFromGitHub {
+    owner = "SamHH";
+    repo = "bukubrow";
+    rev = version;
+    sha256 = "1wrwav7am73bmgbpwh1pi0b8k7vhydqvw91hmmhnvbjhrhbns7s5";
+  };
+  sourceRoot = "source/binary";
+
+  cargoSha256 = "19d1pgk8nm5jsfd696bqayi5s8ivv9gi6jdb00d10ddjxz234gs7";
+
+  buildInputs = [ sqlite ];
+
+  postInstall = ''
+    mkdir -p $out/etc $out/lib/mozilla/native-messaging-hosts
+
+    host_file="$out/bin/bukubrow"
+    sed -e "s!%%replace%%!$host_file!" browser-hosts/firefox.json > "$out/etc/firefox-host.json"
+    sed -e "s!%%replace%%!$host_file!" browser-hosts/chrome.json > "$out/etc/chrome-host.json"
+
+    ln -s $out/etc/firefox-host.json $out/lib/mozilla/native-messaging-hosts/com.samhh.bukubrow.json
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Bukubrow is a WebExtension for Buku, a command-line bookmark manager";
+    homepage = https://github.com/SamHH/bukubrow;
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ infinisil ];
+  };
+}
+
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 2bb5dcbbad80..a343fce5018b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -967,6 +967,8 @@ with pkgs;
 
   buildah = callPackage ../development/tools/buildah { };
 
+  bukubrow = callPackage ../tools/networking/bukubrow { };
+
   burpsuite = callPackage ../tools/networking/burpsuite {};
 
   c3d = callPackage ../applications/graphics/c3d {