about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJörg Thalheim <Mic92@users.noreply.github.com>2019-12-31 14:23:19 +0000
committerGitHub <noreply@github.com>2019-12-31 14:23:19 +0000
commita45447a3d5f79416438db78093e7b205ba5628dd (patch)
tree6dc1c21b5a08777a196bebd5fdf67822a0fbea12
parent3238beab0a32b29eda2a63bf56e67df6e8a1f632 (diff)
parent1a477dc8954fb3e384e2f6f89d62904876f952d1 (diff)
downloadnixlib-a45447a3d5f79416438db78093e7b205ba5628dd.tar
nixlib-a45447a3d5f79416438db78093e7b205ba5628dd.tar.gz
nixlib-a45447a3d5f79416438db78093e7b205ba5628dd.tar.bz2
nixlib-a45447a3d5f79416438db78093e7b205ba5628dd.tar.lz
nixlib-a45447a3d5f79416438db78093e7b205ba5628dd.tar.xz
nixlib-a45447a3d5f79416438db78093e7b205ba5628dd.tar.zst
nixlib-a45447a3d5f79416438db78093e7b205ba5628dd.zip
bandwhich: init at 0.6.0 (#76689)
bandwhich: init at 0.6.0
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/programs/bandwhich.nix29
-rw-r--r--pkgs/tools/networking/bandwhich/default.nix32
-rw-r--r--pkgs/top-level/all-packages.nix4
4 files changed, 66 insertions, 0 deletions
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 11bb900f7bb5..5b21aec51bdd 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -95,6 +95,7 @@
   ./programs/adb.nix
   ./programs/atop.nix
   ./programs/autojump.nix
+  ./programs/bandwhich.nix
   ./programs/bash/bash.nix
   ./programs/bcc.nix
   ./programs/browserpass.nix
diff --git a/nixos/modules/programs/bandwhich.nix b/nixos/modules/programs/bandwhich.nix
new file mode 100644
index 000000000000..5413044f4614
--- /dev/null
+++ b/nixos/modules/programs/bandwhich.nix
@@ -0,0 +1,29 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let cfg = config.programs.bandwhich;
+in {
+  meta.maintainers = with maintainers; [ filalex77 ];
+
+  options = {
+    programs.bandwhich = {
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to add bandwhich to the global environment and configure a
+          setcap wrapper for it.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = with pkgs; [ bandwhich ];
+    security.wrappers.bandwhich = {
+      source = "${pkgs.bandwhich}/bin/bandwhich";
+      capabilities = "cap_net_raw,cap_net_admin+ep";
+    };
+  };
+}
diff --git a/pkgs/tools/networking/bandwhich/default.nix b/pkgs/tools/networking/bandwhich/default.nix
new file mode 100644
index 000000000000..21253745cb0a
--- /dev/null
+++ b/pkgs/tools/networking/bandwhich/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, rustPlatform, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "bandwhich";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "imsnif";
+    repo = pname;
+    rev = version;
+    sha256 = "0jjqc8sysvw63mwy68z9p16vc1pygrm1wxyll6piwvbbnirpys1y";
+  };
+
+  cargoSha256 = "1rixpljqddwhryddzni5l6m4sjyn1krrj0ig0rzc701am7srhg3a";
+
+  buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
+
+  meta = with stdenv.lib; {
+    description = "A CLI utility for displaying current network utilization";
+    longDescription = ''
+      bandwhich sniffs a given network interface and records IP packet size, cross
+      referencing it with the /proc filesystem on linux or lsof on MacOS. It is
+      responsive to the terminal window size, displaying less info if there is
+      no room for it. It will also attempt to resolve ips to their host name in
+      the background using reverse DNS on a best effort basis.
+    '';
+    homepage = "https://github.com/imsnif/bandwhich";
+    license = licenses.mit;
+    maintainers = with maintainers; [ filalex77 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 246544bb3dc4..fb46c31c7f06 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1085,6 +1085,10 @@ in
 
   backblaze-b2 = python.pkgs.callPackage ../development/tools/backblaze-b2 { };
 
+  bandwhich = callPackage ../tools/networking/bandwhich {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   bar = callPackage ../tools/system/bar {};
 
   base16-shell-preview = callPackage ../misc/base16-shell-preview { };