nixpkgs/pkgs/by-name/ko/konstraint/package.nix
aleksana 571c71e6f7 treewide: migrate packages to pkgs/by-name, take 1
We are migrating packages that meet below requirements:

1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration

The tool is here: https://github.com/Aleksanaa/by-name-migrate.
2024-11-09 20:04:51 +08:00

51 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 ];
};
}