2023-05-24 13:37:59 +00:00
|
|
|
{ lib
|
|
|
|
, buildGoModule
|
|
|
|
, fetchFromGitHub
|
2024-04-21 15:54:59 +00:00
|
|
|
, nodejs
|
|
|
|
, nix-update-script
|
2023-05-24 13:37:59 +00:00
|
|
|
}:
|
2023-01-11 07:51:40 +00:00
|
|
|
|
|
|
|
buildGoModule rec {
|
|
|
|
pname = "jfrog-cli";
|
2024-04-21 15:54:59 +00:00
|
|
|
version = "2.56.0";
|
2023-01-11 07:51:40 +00:00
|
|
|
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "jfrog";
|
|
|
|
repo = "jfrog-cli";
|
2023-05-24 13:37:59 +00:00
|
|
|
rev = "refs/tags/v${version}";
|
2024-04-21 15:54:59 +00:00
|
|
|
hash = "sha256-a7zCPyKV9kZ34XxVBYotcMvXUVrieunFpKGBK1Jhvo4=";
|
2023-01-11 07:51:40 +00:00
|
|
|
};
|
|
|
|
|
2024-04-21 15:54:59 +00:00
|
|
|
vendorHash = "sha256-q0PXbLTS5Po3xTK+CkU7BtZ6tk1PfH3zVAVK1IbmitY=";
|
|
|
|
|
|
|
|
# Upgrade the Go version during the vendoring FOD build because it fails otherwise.
|
|
|
|
overrideModAttrs = _: {
|
|
|
|
preBuild = ''
|
|
|
|
substituteInPlace go.mod --replace-fail 'go 1.20' 'go 1.21'
|
|
|
|
'';
|
|
|
|
postInstall = ''
|
|
|
|
cp go.mod "$out/go.mod"
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
# Copy the modified go.mod we got from the vendoring process.
|
|
|
|
preBuild = ''
|
|
|
|
cp vendor/go.mod go.mod
|
|
|
|
'';
|
|
|
|
|
|
|
|
postPatch = ''
|
|
|
|
# Patch out broken test cleanup.
|
|
|
|
substituteInPlace artifactory_test.go \
|
|
|
|
--replace-fail \
|
|
|
|
'deleteReceivedReleaseBundle(t, "cli-tests", "2")' \
|
|
|
|
'// deleteReceivedReleaseBundle(t, "cli-tests", "2")'
|
|
|
|
'';
|
2023-05-24 13:37:59 +00:00
|
|
|
|
2023-01-11 07:51:40 +00:00
|
|
|
postInstall = ''
|
|
|
|
# Name the output the same way as the original build script does
|
|
|
|
mv $out/bin/jfrog-cli $out/bin/jf
|
|
|
|
'';
|
|
|
|
|
|
|
|
# Some of the tests require a writable $HOME
|
|
|
|
preCheck = "export HOME=$TMPDIR";
|
|
|
|
|
2024-04-21 15:54:59 +00:00
|
|
|
nativeCheckInputs = [ nodejs ];
|
|
|
|
|
|
|
|
passthru.updateScript = nix-update-script { };
|
|
|
|
|
2023-01-11 07:51:40 +00:00
|
|
|
meta = with lib; {
|
|
|
|
homepage = "https://github.com/jfrog/jfrog-cli";
|
|
|
|
description = "Client for accessing to JFrog's Artifactory and Mission Control through their respective REST APIs";
|
2023-05-24 13:37:59 +00:00
|
|
|
changelog = "https://github.com/jfrog/jfrog-cli/releases/tag/v${version}";
|
2023-01-11 07:51:40 +00:00
|
|
|
license = licenses.asl20;
|
|
|
|
mainProgram = "jf";
|
2024-04-21 15:54:59 +00:00
|
|
|
maintainers = with maintainers; [ detegr aidalgol ];
|
2023-01-11 07:51:40 +00:00
|
|
|
};
|
|
|
|
}
|