diff options
Diffstat (limited to 'pkgs/by-name/co/consul/package.nix')
-rw-r--r-- | pkgs/by-name/co/consul/package.nix | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/pkgs/by-name/co/consul/package.nix b/pkgs/by-name/co/consul/package.nix new file mode 100644 index 0000000000000..1a5eb769016dd --- /dev/null +++ b/pkgs/by-name/co/consul/package.nix @@ -0,0 +1,68 @@ +{ + lib, + buildGoModule, + fetchFromGitHub, + nixosTests, + nix-update-script, +}: + +buildGoModule rec { + pname = "consul"; + version = "1.18.1"; + + # Note: Currently only release tags are supported, because they have the Consul UI + # vendored. See + # https://github.com/NixOS/nixpkgs/pull/48714#issuecomment-433454834 + # If you want to use a non-release commit as `src`, you probably want to improve + # this derivation so that it can build the UI's JavaScript from source. + # See https://github.com/NixOS/nixpkgs/pull/49082 for something like that. + # Or, if you want to patch something that doesn't touch the UI, you may want + # to apply your changes as patches on top of a release commit. + src = fetchFromGitHub { + owner = "hashicorp"; + repo = pname; + rev = "refs/tags/v${version}"; + hash = "sha256-r1xdz1rjvbvB93hRpvTNQwSqQLOJwqMhqCiXdIttY10="; + }; + + # This corresponds to paths with package main - normally unneeded but consul + # has a split module structure in one repo + subPackages = [ + "." + "connect/certgen" + ]; + + vendorHash = "sha256-DcpEHJ88Ehz5m+ddMd44mYTz0agwYhoels5jWJzu1EM="; + + doCheck = false; + + ldflags = [ + "-X github.com/hashicorp/consul/version.GitDescribe=v${version}" + "-X github.com/hashicorp/consul/version.Version=${version}" + "-X github.com/hashicorp/consul/version.VersionPrerelease=" + ]; + + passthru = { + tests = { + inherit (nixosTests) consul; + }; + + updateScript = nix-update-script { }; + }; + + meta = with lib; { + description = "Tool for service discovery, monitoring and configuration"; + changelog = "https://github.com/hashicorp/consul/releases/tag/v${version}"; + homepage = "https://www.consul.io/"; + platforms = platforms.linux ++ platforms.darwin; + license = licenses.bsl11; + maintainers = with maintainers; [ + adamcstephens + pradeepchhetri + vdemeester + nh2 + techknowlogick + ]; + mainProgram = "consul"; + }; +} |