evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / go / go-mockery / package.nix
blob394a16b7e023dfc4da0df84e03691f5803d5dee6
1 { lib, buildGoModule, fetchFromGitHub, go-mockery, runCommand, go }:
3 buildGoModule rec {
4   pname = "go-mockery";
5   version = "2.46.3";
7   src = fetchFromGitHub {
8     owner = "vektra";
9     repo = "mockery";
10     rev = "v${version}";
11     sha256 = "sha256-KgQ5EV7tnIZGmM8vrP7Sed2jm7ghgORCgkFR9TOXx6Y=";
12   };
14   preCheck = ''
15     substituteInPlace ./pkg/generator_test.go --replace-fail 0.0.0-dev ${version}
16     substituteInPlace ./pkg/logging/logging_test.go --replace-fail v0.0 v${lib.versions.majorMinor version}
17   '';
19   ldflags = [
20     "-s" "-w"
21     "-X" "github.com/vektra/mockery/v2/pkg/logging.SemVer=v${version}"
22   ];
24   CGO_ENABLED = false;
26   proxyVendor = true;
27   vendorHash = "sha256-fxh0WaopHKHuOjXXYNmO30/jB1zwtf5HhhtRGnCl7fM=";
29   subPackages = [ "." ];
31   passthru.tests = {
32     generateMock = runCommand "${pname}-test" {
33       nativeBuildInputs = [ go-mockery ];
34       buildInputs = [ go ];
35     } ''
36       if [[ $(mockery --version) != *"${version}"* ]]; then
37         echo "Error: program version does not match package version"
38         exit 1
39       fi
41       export HOME=$TMPDIR
43       cat <<EOF > foo.go
44       package main
46       type Foo interface {
47         Bark() string
48       }
49       EOF
51       mockery --name Foo --dir .
53       if [[ ! -f "mocks/Foo.go" ]]; then
54         echo "Error: mocks/Foo.go was not generated by ${pname}"
55         exit 1
56       fi
58       touch $out
59     '';
60   };
62   meta = with lib; {
63     homepage = "https://github.com/vektra/mockery";
64     description = "Mock code autogenerator for Golang";
65     maintainers = with maintainers; [ fbrs ];
66     mainProgram = "mockery";
67     license = licenses.bsd3;
68   };