nixpkgs/pkgs/by-name/go/gojq/package.nix
2025-07-13 16:55:16 +08:00

54 lines
1.2 KiB
Nix

{
lib,
buildGoModule,
fetchFromGitHub,
installShellFiles,
versionCheckHook,
}:
buildGoModule (finalAttrs: {
pname = "gojq";
version = "0.12.17";
src = fetchFromGitHub {
owner = "itchyny";
repo = "gojq";
rev = "v${finalAttrs.version}";
hash = "sha256-zJkeghN3btF/fZZeuClHV1ndB/2tTTMljEukMYe7UWU=";
};
vendorHash = "sha256-ZC0byawZLBwId5GcAgHXRdEOMUSAv4wDNHFHLrbhB+I=";
ldflags = [
"-s"
"-w"
];
nativeBuildInputs = [ installShellFiles ];
postInstall = ''
installShellCompletion --cmd gojq --zsh _gojq
'';
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "--version";
postInstallCheck = ''
$out/bin/gojq --help > /dev/null
$out/bin/gojq --raw-output '.values[1]' <<< '{"values":["hello","world"]}' | grep '^world$' > /dev/null
'';
doInstallCheck = true;
meta = {
description = "Pure Go implementation of jq";
homepage = "https://github.com/itchyny/gojq";
changelog = "https://github.com/itchyny/gojq/blob/v${finalAttrs.version}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
xiaoxiangmoe
];
mainProgram = "gojq";
};
})