krew: fix version display (#500022)

This commit is contained in:
Aleksana
2026-03-18 14:09:08 +00:00
committed by GitHub
+27 -2
View File
@@ -4,6 +4,8 @@
fetchFromGitHub,
makeWrapper,
gitMinimal,
writableTmpDirAsHomeHook,
versionCheckHook,
}:
buildGoModule (finalAttrs: {
@@ -13,8 +15,13 @@ buildGoModule (finalAttrs: {
src = fetchFromGitHub {
owner = "kubernetes-sigs";
repo = "krew";
rev = "v${finalAttrs.version}";
sha256 = "sha256-KG4/vtEfwWVddfFoNbC4xakxOynDY6jyxek4JAXW5gY=";
tag = "v${finalAttrs.version}";
hash = "sha256-rhl4qVHwl876OSDrcLSS07x3H/x/zmFLPHdRw+fcYsw=";
leaveDotGit = true;
postFetch = ''
git -C "$out" rev-parse --short HEAD > "$out/.git_head"
rm -rf "$out/.git"
'';
};
vendorHash = "sha256-z0wiYknXcCx4vqROngn58CRe9TBgya4y3v736VBMhQ8=";
@@ -23,11 +30,29 @@ buildGoModule (finalAttrs: {
nativeBuildInputs = [ makeWrapper ];
ldflags = [
"-s"
"-X"
"sigs.k8s.io/krew/internal/version.gitTag=v${finalAttrs.version}"
];
preBuild = ''
ldflags+=" -X=sigs.k8s.io/krew/internal/version.gitCommit=$(<.git_head)"
'';
postFixup = ''
wrapProgram $out/bin/krew \
--prefix PATH : ${lib.makeBinPath [ gitMinimal ]}
'';
doInstallCheck = true;
nativeInstallCheckInputs = [
writableTmpDirAsHomeHook
versionCheckHook
];
versionCheckKeepEnvironment = [ "HOME" ];
versionCheckProgramArg = "version";
meta = {
description = "Package manager for kubectl plugins";
mainProgram = "krew";