blob: cfb35a03ceef7226b210c478ef1e1ffe9e447ce9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
versionCheckHook,
writableTmpDirAsHomeHook,
}:
buildGoModule (finalAttrs: {
pname = "harbor-cli";
version = "0.0.26";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "goharbor";
repo = "harbor-cli";
tag = "v${finalAttrs.version}";
hash = "sha256-xaON2tgF2WvL2yffNS8VfS7AwmUo8J5uyZEWVmZlBLg=";
};
vendorHash = "sha256-HVaWa8LH2jlXPB+wDjRA0r20XiFBNUFD2gPJ5A7yPU4=";
excludedPackages = [
"dagger"
"doc"
];
nativeBuildInputs = [
installShellFiles
writableTmpDirAsHomeHook
];
ldflags = [
"-s"
"-X github.com/goharbor/harbor-cli/cmd/harbor/internal/version.Version=${finalAttrs.version}"
];
doCheck = false; # Network required
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd harbor \
--bash <($out/bin/harbor completion bash) \
--fish <($out/bin/harbor completion fish) \
--zsh <($out/bin/harbor completion zsh)
'';
nativeInstallCheckInputs = [
versionCheckHook
writableTmpDirAsHomeHook
];
versionCheckKeepEnvironment = [ "HOME" ];
versionCheckProgramArg = "version";
doInstallCheck = true;
meta = {
homepage = "https://github.com/goharbor/harbor-cli";
description = "Command-line tool facilitates seamless interaction with the Harbor container registry";
changelog = "https://github.com/goharbor/harbor-cli/releases/tag/v${finalAttrs.version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ aaronjheng ];
mainProgram = "harbor";
};
})
|