65 lines
2.0 KiB
Nix
65 lines
2.0 KiB
Nix
{ stdenv, lib, buildGoModule, fetchFromGitHub, installShellFiles, testers, nix-update-script, k9s }:
|
|
|
|
buildGoModule rec {
|
|
pname = "k9s";
|
|
version = "0.32.6";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "derailed";
|
|
repo = "k9s";
|
|
rev = "v${version}";
|
|
hash = "sha256-jJHlFrnyvGZ0/ykmZRbSAFwzvN0j2dqddLEQoiv3oys=";
|
|
};
|
|
|
|
ldflags = [
|
|
"-s"
|
|
"-w"
|
|
"-X github.com/derailed/k9s/cmd.version=${version}"
|
|
"-X github.com/derailed/k9s/cmd.commit=${src.rev}"
|
|
"-X github.com/derailed/k9s/cmd.date=1970-01-01T00:00:00Z"
|
|
];
|
|
|
|
tags = [ "netcgo" ];
|
|
|
|
proxyVendor = true;
|
|
|
|
vendorHash = "sha256-/DVQghwfiPKLO0LFPFmHFO5jfActoEnlMuQP2i60R9o=";
|
|
|
|
# TODO investigate why some config tests are failing
|
|
doCheck = !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64);
|
|
# Required to workaround test check error:
|
|
preCheck = "export HOME=$(mktemp -d)";
|
|
# For arch != x86
|
|
# {"level":"fatal","error":"could not create any of the following paths: /homeless-shelter/.config, /etc/xdg","time":"2022-06-28T15:52:36Z","message":"Unable to create configuration directory for k9s"}
|
|
passthru = {
|
|
tests.version = testers.testVersion {
|
|
package = k9s;
|
|
command = "HOME=$(mktemp -d) k9s version -s";
|
|
inherit version;
|
|
};
|
|
updateScript = nix-update-script { };
|
|
};
|
|
|
|
nativeBuildInputs = [ installShellFiles ];
|
|
postInstall = ''
|
|
# k9s requires a writeable log directory
|
|
# Otherwise an error message is printed
|
|
# into the completion scripts
|
|
export K9S_LOGS_DIR=$(mktemp -d)
|
|
|
|
installShellCompletion --cmd k9s \
|
|
--bash <($out/bin/k9s completion bash) \
|
|
--fish <($out/bin/k9s completion fish) \
|
|
--zsh <($out/bin/k9s completion zsh)
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "Kubernetes CLI To Manage Your Clusters In Style";
|
|
homepage = "https://github.com/derailed/k9s";
|
|
changelog = "https://github.com/derailed/k9s/releases/tag/v${version}";
|
|
license = licenses.asl20;
|
|
mainProgram = "k9s";
|
|
maintainers = with maintainers; [ Gonzih markus1189 bryanasdev000 qjoly ];
|
|
};
|
|
}
|