diff --git a/pkgs/by-name/go/go-mockery/package.nix b/pkgs/by-name/go/go-mockery/package.nix index 99cd99afeaaa..8910fe5c35f6 100644 --- a/pkgs/by-name/go/go-mockery/package.nix +++ b/pkgs/by-name/go/go-mockery/package.nix @@ -2,80 +2,39 @@ lib, buildGoModule, # sync with go below, update to latest release fetchFromGitHub, - - # passthru test - go-mockery, - runCommand, - go, + versionCheckHook, }: buildGoModule rec { pname = "go-mockery"; - version = "2.53.3"; + version = "3.2.5"; src = fetchFromGitHub { owner = "vektra"; repo = "mockery"; - rev = "v${version}"; - sha256 = "sha256-X0cHpv4o6pzgjg7+ULCuFkspeff95WFtJbVHqy4LxAg="; + tag = "v${version}"; + hash = "sha256-QtfiW9yZvqCjKb3wH+QqfD98d7FLDVBQxj2Y/GC6Yhk="; }; ldflags = [ "-s" "-w" - "-X" - "github.com/vektra/mockery/v${lib.versions.major version}/pkg/logging.SemVer=v${version}" + "-X github.com/vektra/mockery/v${lib.versions.major version}/internal/logging.SemVer=v${version}" ]; env.CGO_ENABLED = false; proxyVendor = true; - vendorHash = "sha256-AQY4x2bLqMwHIjoKHzEm1hebR29gRs3LJN8i00Uup5o="; + vendorHash = "sha256-ac9wqHmkmpb1tIkQQ7x8+X+wQ217vsNm4IIidzNlne0="; + doInstallCheck = true; + nativeInstallCheckInputs = [ + versionCheckHook + ]; + versionCheckProgram = "${placeholder "out"}/bin/mockery"; + versionCheckProgramArg = "version"; subPackages = [ "." ]; - preCheck = '' - # check all paths - unset subPackages - - substituteInPlace ./pkg/generator_test.go --replace-fail 0.0.0-dev ${version} - substituteInPlace ./pkg/logging/logging_test.go --replace-fail v0.0 v${lib.versions.majorMinor version} - ''; - - passthru.tests = { - generateMock = - runCommand "${pname}-test" - { - nativeBuildInputs = [ go-mockery ]; - buildInputs = [ go ]; - } - '' - if [[ $(${meta.mainProgram} --version) != *"${version}"* ]]; then - echo "Error: program version does not match package version" - exit 1 - fi - - export HOME=$TMPDIR - - cat < foo.go - package main - - type Foo interface { - Bark() string - } - EOF - - ${meta.mainProgram} --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 = { homepage = "https://github.com/vektra/mockery"; description = "Mock code autogenerator for Golang";