about summary refs log tree commit diff
diff options
context:
space:
mode:
authoremilylange <git@emilylange.de>2024-01-30 23:06:16 +0100
committeremilylange <git@emilylange.de>2024-01-30 23:06:16 +0100
commite7daaa7001981d76ecc5c8ce67491f442d08c21b (patch)
tree3c9629e1a8fafd4e67d9a8a73d9d26e4d092fb9a
parentc762005190797bc4498cb785f1557e204f9db8a4 (diff)
downloadnixlib-e7daaa7001981d76ecc5c8ce67491f442d08c21b.tar
nixlib-e7daaa7001981d76ecc5c8ce67491f442d08c21b.tar.gz
nixlib-e7daaa7001981d76ecc5c8ce67491f442d08c21b.tar.bz2
nixlib-e7daaa7001981d76ecc5c8ce67491f442d08c21b.tar.lz
nixlib-e7daaa7001981d76ecc5c8ce67491f442d08c21b.tar.xz
nixlib-e7daaa7001981d76ecc5c8ce67491f442d08c21b.tar.zst
nixlib-e7daaa7001981d76ecc5c8ce67491f442d08c21b.zip
bandwhich: add shell completions and man page
Pre v0.22.0, shell completions and the man page were static and heavily
outdated.

v0.22.0 then removed those entirely.

v0.22.2 then re-added shell completions and the man page, but this time
natively generated on build time (assuming $BANDWHICH_GEN_DIR is set).

Technically, shell completions for PowerShell and Elvish are generated
as well, but we don't install those, since our installShellCompletions
does not support those shells.
-rw-r--r--pkgs/tools/networking/bandwhich/default.nix16
1 files changed, 15 insertions, 1 deletions
diff --git a/pkgs/tools/networking/bandwhich/default.nix b/pkgs/tools/networking/bandwhich/default.nix
index 240fa3e86f8a..958cb6364785 100644
--- a/pkgs/tools/networking/bandwhich/default.nix
+++ b/pkgs/tools/networking/bandwhich/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, Security }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, Security, installShellFiles }:
 
 rustPlatform.buildRustPackage rec {
   pname = "bandwhich";
@@ -23,11 +23,25 @@ rustPlatform.buildRustPackage rec {
     "--skip=tests::cases::ui::layout_under_50_width_under_50_height"
   ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
   buildInputs = lib.optional stdenv.isDarwin Security;
 
   # 10 passed; 47 failed https://hydra.nixos.org/build/148943783/nixlog/1
   doCheck = !stdenv.isDarwin;
 
+  preConfigure = ''
+    export BANDWHICH_GEN_DIR=_shell-files
+    mkdir -p $BANDWHICH_GEN_DIR
+  '';
+
+  postInstall = ''
+    installManPage $BANDWHICH_GEN_DIR/bandwhich.1
+
+    installShellCompletion $BANDWHICH_GEN_DIR/bandwhich.{bash,fish} \
+      --zsh $BANDWHICH_GEN_DIR/_bandwhich
+  '';
+
   meta = with lib; {
     description = "A CLI utility for displaying current network utilization";
     longDescription = ''