Unverified Commit e7daaa70 authored by emilylange's avatar emilylange
Browse files

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.
parent c7620051
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
{ 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 = ''