depot/third_party/nixpkgs/pkgs/development/tools/konstraint/default.nix
Default email f34ce41345 Project import generated by Copybara.
GitOrigin-RevId: b73c2221a46c13557b1b3be9c2070cc42cf01eb3
2024-07-27 08:49:29 +02:00

50 lines
1.7 KiB
Nix

{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
buildGoModule rec {
pname = "konstraint";
version = "0.38.0";
src = fetchFromGitHub {
owner = "plexsystems";
repo = pname;
rev = "v${version}";
sha256 = "sha256-02vmIsYGX6HB7k1HArMpNY+UxVX24IyraNPu13ht2qQ=";
};
vendorHash = "sha256-eD0K2te9+9x0fUYMVZ6SreV2AhkYwBzQHUTyeNwuEHc=";
# Exclude go within .github folder
excludedPackages = ".github";
nativeBuildInputs = [ installShellFiles ];
ldflags = [ "-s" "-w" "-X github.com/plexsystems/konstraint/internal/commands.version=${version}" ];
postInstall = ''
installShellCompletion --cmd konstraint \
--bash <($out/bin/konstraint completion bash) \
--fish <($out/bin/konstraint completion fish) \
--zsh <($out/bin/konstraint completion zsh)
'';
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
$out/bin/konstraint --help
$out/bin/konstraint --version | grep "${version}"
runHook postInstallCheck
'';
meta = with lib; {
homepage = "https://github.com/plexsystems/konstraint";
changelog = "https://github.com/plexsystems/konstraint/releases/tag/v${version}";
description = "Policy management tool for interacting with Gatekeeper";
mainProgram = "konstraint";
longDescription = ''
konstraint is a CLI tool to assist with the creation and management of templates and constraints when using
Gatekeeper. Automatically copy Rego to the ConstraintTemplate. Automatically update all ConstraintTemplates with
library changes. Enable writing the same policies for Conftest and Gatekeeper.
'';
license = licenses.mit;
maintainers = with maintainers; [ jk ];
};
}