diff --git a/pkgs/applications/networking/cluster/glooctl/default.nix b/pkgs/applications/networking/cluster/glooctl/default.nix new file mode 100644 index 000000000000..6920c11dcae5 --- /dev/null +++ b/pkgs/applications/networking/cluster/glooctl/default.nix @@ -0,0 +1,36 @@ +{ lib, buildGoModule, fetchFromGitHub, installShellFiles }: + +buildGoModule rec { + pname = "glooctl"; + version = "1.10.6"; + + src = fetchFromGitHub { + owner = "solo-io"; + repo = "gloo"; + rev = "v${version}"; + sha256 = "sha256-t63tK0hwbVnUP9UxS8g3uzL3rBvKR10vu1E85mNV3E0="; + }; + + subPackages = [ "projects/gloo/cli/cmd" ]; + vendorSha256 = "sha256-IBuAUKbX1esx2p4Q/b3UxQH9S3VVNYZcn5vRKtmhO0A="; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + mv $out/bin/cmd $out/bin/glooctl + + export HOME=$TMP + installShellCompletion --cmd glooctl \ + --bash <($out/bin/glooctl completion bash) \ + --zsh <($out/bin/glooctl completion zsh) + ''; + + ldflags = [ "-s" "-w" "-X github.com/solo-io/gloo/pkg/version.Version=${version}" ]; + + meta = with lib; { + description = "glooctl is the unified CLI for Gloo"; + homepage = "https://docs.solo.io/gloo-edge/latest/reference/cli/glooctl/"; + license = licenses.asl20; + maintainers = with maintainers; [ nelsonjeppesen ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 316808c52af6..ac593b9220fe 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1013,6 +1013,8 @@ with pkgs; gfshare = callPackage ../tools/security/gfshare { }; + glooctl = callPackage ../applications/networking/cluster/glooctl { }; + gobgp = callPackage ../tools/networking/gobgp { }; gofu = callPackage ../applications/misc/gofu { };