{ lib, buildGoModule, fetchFromGitHub, installShellFiles }: buildGoModule rec { pname = "clusterctl"; version = "1.1.2"; src = fetchFromGitHub { owner = "kubernetes-sigs"; repo = "cluster-api"; rev = "v${version}"; sha256 = "sha256-IjkksHa94gkNiaeksGHlLdeHlLS/uwI0GnKK0d3s5wk="; }; vendorSha256 = "sha256-3PzaMB7U19HnqS+zRbIupErE1S8+MzG92vQFq3oxHpE="; subPackages = [ "cmd/clusterctl" ]; nativeBuildInputs = [ installShellFiles ]; ldflags = let t = "sigs.k8s.io/cluster-api/version"; in [ "-X ${t}.gitMajor=${lib.versions.major version}" "-X ${t}.gitMinor=${lib.versions.minor version}" "-X ${t}.gitVersion=v${version}" ]; postInstall = '' # errors attempting to write config to read-only $HOME export HOME=$(mktemp -d) installShellCompletion --cmd clusterctl \ --bash <($out/bin/clusterctl completion bash) \ --zsh <($out/bin/clusterctl completion zsh) ''; meta = with lib; { description = "Kubernetes cluster API tool"; homepage = "https://cluster-api.sigs.k8s.io/"; license = licenses.asl20; maintainers = with maintainers; [ zowoq ]; }; }