From e7daaa7001981d76ecc5c8ce67491f442d08c21b Mon Sep 17 00:00:00 2001 From: emilylange Date: Tue, 30 Jan 2024 23:06:16 +0100 Subject: [PATCH 1/2] 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. --- pkgs/tools/networking/bandwhich/default.nix | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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 = '' From 8535f629910b12778fa875e9e8a1c45d439e5d46 Mon Sep 17 00:00:00 2001 From: emilylange Date: Wed, 31 Jan 2024 02:21:44 +0100 Subject: [PATCH 2/2] bandwhich: add `meta.changelog` bandwhich has two different changelogs: 1. the in-tree CHANGELOG.md 2. git tags/GitHub Releases Unfortunately, the CHANGELOG.md contains fewer information from time to time. One example would be https://github.com/imsnif/bandwhich/blob/v0.22.0/CHANGELOG.md vs https://github.com/imsnif/bandwhich/releases/tag/v0.22.0 In this case, the GitHub Release contains a lot more noise due to various chore(deps) entries. This is due to https://github.com/imsnif/bandwhich/blob/b5e48ba9bb466c5e1192755b0235b6b43d1d4966/.github/workflows/require-changelog-for-PRs.yml#L10-L11 I'd argue, the CHANGELOG.md should be preferred here, but in the end this isn't my package and not my call. --- pkgs/tools/networking/bandwhich/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/tools/networking/bandwhich/default.nix b/pkgs/tools/networking/bandwhich/default.nix index 958cb6364785..eea66c329f84 100644 --- a/pkgs/tools/networking/bandwhich/default.nix +++ b/pkgs/tools/networking/bandwhich/default.nix @@ -52,6 +52,7 @@ rustPlatform.buildRustPackage rec { the background using reverse DNS on a best effort basis. ''; homepage = "https://github.com/imsnif/bandwhich"; + changelog = "https://github.com/imsnif/bandwhich/blob/${src.rev}/CHANGELOG.md"; license = licenses.mit; maintainers = with maintainers; [ Br1ght0ne figsoda ]; platforms = platforms.unix;