2c76a4cb41
GitOrigin-RevId: c757e9bd77b16ca2e03c89bf8bc9ecb28e0c06ad
67 lines
1.6 KiB
Nix
67 lines
1.6 KiB
Nix
{ lib, buildGoModule, fetchFromGitHub, go-mockery, runCommand, go }:
|
|
|
|
buildGoModule rec {
|
|
pname = "go-mockery";
|
|
version = "2.36.0";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "vektra";
|
|
repo = "mockery";
|
|
rev = "v${version}";
|
|
sha256 = "sha256-lJkxN0FtwfuOMCMGEISkZMMKULE5X5kTltIgDm7Ta0Y=";
|
|
};
|
|
|
|
preCheck = ''
|
|
substituteInPlace ./pkg/generator_test.go --replace 0.0.0-dev ${version}
|
|
substituteInPlace ./pkg/logging/logging_test.go --replace v0.0 v${lib.versions.majorMinor version}
|
|
'';
|
|
|
|
ldflags = [
|
|
"-s" "-w"
|
|
"-X" "github.com/vektra/mockery/v2/pkg/logging.SemVer=v${version}"
|
|
];
|
|
|
|
CGO_ENABLED = false;
|
|
|
|
proxyVendor = true;
|
|
vendorHash = "sha256-HxxtKtjc1EuONG4bYTZc9i40X6Q75bQzV1Wi6Qb/Id0=";
|
|
|
|
passthru.tests = {
|
|
generateMock = runCommand "${pname}-test" {
|
|
nativeBuildInputs = [ go-mockery ];
|
|
buildInputs = [ go ];
|
|
} ''
|
|
if [[ $(mockery --version) != *"${version}"* ]]; then
|
|
echo "Error: program version does not match package version"
|
|
exit 1
|
|
fi
|
|
|
|
export HOME=$TMPDIR
|
|
|
|
cat <<EOF > foo.go
|
|
package main
|
|
|
|
type Foo interface {
|
|
Bark() string
|
|
}
|
|
EOF
|
|
|
|
mockery --name Foo --dir .
|
|
|
|
if [[ ! -f "mocks/Foo.go" ]]; then
|
|
echo "Error: mocks/Foo.go was not generated by ${pname}"
|
|
exit 1
|
|
fi
|
|
|
|
touch $out
|
|
'';
|
|
};
|
|
|
|
meta = with lib; {
|
|
homepage = "https://github.com/vektra/mockery";
|
|
description = "A mock code autogenerator for Golang";
|
|
maintainers = with maintainers; [ fbrs ];
|
|
mainProgram = "mockery";
|
|
license = licenses.bsd3;
|
|
};
|
|
}
|