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.
This commit is contained in:
emilylange 2024-01-30 23:06:16 +01:00
parent c762005190
commit e7daaa7001
No known key found for this signature in database
GPG Key ID: 0AD773CE46FD0F87

View File

@ -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 = ''