anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / networking / cluster / helmfile / default.nix
blobcec05a410c2c3b8ef2fb019a66141bbaa5f64376
1 { lib
2 , buildGoModule
3 , fetchFromGitHub
4 , installShellFiles
5 , makeWrapper
6 , pluginsDir ? null
7 }:
9 buildGoModule rec {
10   pname = "helmfile";
11   version = "0.169.0";
13   src = fetchFromGitHub {
14     owner = "helmfile";
15     repo = "helmfile";
16     rev = "v${version}";
17     hash = "sha256-HGdNCGCJ8LsXyRSinNu1EDy9XuI7mTHONAgti2SETWw=";
18   };
20   vendorHash = "sha256-zWgza1eiO4UF/RL2Z4R4bvO+tgcN1KT8nBZor/plY+A=";
22   proxyVendor = true; # darwin/linux hash mismatch
24   doCheck = false;
26   subPackages = [ "." ];
28   ldflags = [ "-s" "-w" "-X go.szostok.io/version.version=v${version}" ];
30   nativeBuildInputs =
31     [ installShellFiles ] ++
32     lib.optional (pluginsDir != null) makeWrapper;
34   postInstall = lib.optionalString (pluginsDir != null) ''
35     wrapProgram $out/bin/helmfile \
36       --set HELM_PLUGINS "${pluginsDir}"
37   '' + ''
38     installShellCompletion --cmd helmfile \
39       --bash <($out/bin/helmfile completion bash) \
40       --fish <($out/bin/helmfile completion fish) \
41       --zsh <($out/bin/helmfile completion zsh)
42   '';
44   meta = {
45     description = "Declarative spec for deploying Helm charts";
46     mainProgram = "helmfile";
47     longDescription = ''
48       Declaratively deploy your Kubernetes manifests, Kustomize configs,
49       and charts as Helm releases in one shot.
50     '';
51     homepage = "https://helmfile.readthedocs.io/";
52     license = lib.licenses.mit;
53     maintainers = with lib.maintainers; [ pneumaticat yurrriq ];
54   };