62 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   lib,
 | |
|   buildGoModule,
 | |
|   fetchFromGitHub,
 | |
|   installShellFiles,
 | |
|   testers,
 | |
|   clusterctl,
 | |
| }:
 | |
| 
 | |
| buildGoModule rec {
 | |
|   pname = "clusterctl";
 | |
|   version = "1.9.4";
 | |
| 
 | |
|   src = fetchFromGitHub {
 | |
|     owner = "kubernetes-sigs";
 | |
|     repo = "cluster-api";
 | |
|     rev = "v${version}";
 | |
|     hash = "sha256-XNGSO9czfF+fCMNoF6BIboQeKKvysyF6e7sC7lY+1Ds=";
 | |
|   };
 | |
| 
 | |
|   vendorHash = "sha256-89fq5ANspfHw7aU6b3L7Kdt0Y7oVLpUYxhHmnVdLP/Q=";
 | |
| 
 | |
|   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=$TMPDIR
 | |
| 
 | |
|     installShellCompletion --cmd clusterctl \
 | |
|       --bash <($out/bin/clusterctl completion bash) \
 | |
|       --fish <($out/bin/clusterctl completion fish) \
 | |
|       --zsh <($out/bin/clusterctl completion zsh)
 | |
|   '';
 | |
| 
 | |
|   passthru.tests.version = testers.testVersion {
 | |
|     package = clusterctl;
 | |
|     command = "HOME=$TMPDIR clusterctl version";
 | |
|     version = "v${version}";
 | |
|   };
 | |
| 
 | |
|   meta = {
 | |
|     changelog = "https://github.com/kubernetes-sigs/cluster-api/releases/tag/${src.rev}";
 | |
|     description = "Kubernetes cluster API tool";
 | |
|     mainProgram = "clusterctl";
 | |
|     homepage = "https://cluster-api.sigs.k8s.io/";
 | |
|     license = lib.licenses.asl20;
 | |
|     maintainers = with lib.maintainers; [ qjoly ];
 | |
|   };
 | |
| }
 | 
