From 994582bd5d0049d4d43f7d90798a0f0c48d2ffab Mon Sep 17 00:00:00 2001 From: "Florian S." Date: Wed, 18 Sep 2024 14:24:42 +0200 Subject: [PATCH] kubecolor: add shell completion support --- .../networking/cluster/kubecolor/default.nix | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/networking/cluster/kubecolor/default.nix b/pkgs/applications/networking/cluster/kubecolor/default.nix index 458837486b74..f51d0a8a6af1 100644 --- a/pkgs/applications/networking/cluster/kubecolor/default.nix +++ b/pkgs/applications/networking/cluster/kubecolor/default.nix @@ -1,4 +1,4 @@ -{ lib, buildGoModule, fetchFromGitHub }: +{ lib, stdenv, buildGoModule, fetchFromGitHub, kubectl, installShellFiles }: buildGoModule rec { pname = "kubecolor"; @@ -19,6 +19,26 @@ buildGoModule rec { "." ]; + nativeBuildInputs = [ installShellFiles ]; + + postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' + # kubecolor re-uses the completions of kubectl for its own executable + + installShellCompletion --cmd kubecolor \ + --bash <(${lib.getExe kubectl} completion bash) \ + --fish <(${lib.getExe kubectl} completion fish) \ + --zsh <(${lib.getExe kubectl} completion zsh) + + # https://kubecolor.github.io/setup/shells/bash/ + echo 'complete -o default -F __start_kubectl kubecolor' >> $out/share/bash-completion/completions/kubecolor.bash + + # https://kubecolor.github.io/setup/shells/fish/ + echo -e 'function kubecolor --wraps kubectl\n command kubecolor $argv\nend' >> $out/share/fish/vendor_completions.d/kubecolor.fish + + # https://kubecolor.github.io/setup/shells/zsh/ + echo 'compdef kubecolor=kubectl' >> $out/share/zsh/site-functions/_kubecolor + ''; + meta = with lib; { description = "Colorizes kubectl output"; mainProgram = "kubecolor";