diff --git a/internal/providercache/installer.go b/internal/providercache/installer.go index 8202070576..6f1a1fd3aa 100644 --- a/internal/providercache/installer.go +++ b/internal/providercache/installer.go @@ -314,6 +314,9 @@ NeedProvider: if installed := i.targetDir.ProviderVersion(provider, version); installed != nil { if len(preferredHashes) > 0 { if matches, _ := installed.MatchesAnyHash(preferredHashes); matches { + if cb := evts.ProviderAlreadyInstalled; cb != nil { + cb(provider, version) + } continue } } diff --git a/internal/providercache/installer_test.go b/internal/providercache/installer_test.go index 775b0199f5..2063fc1eac 100644 --- a/internal/providercache/installer_test.go +++ b/internal/providercache/installer_test.go @@ -12,6 +12,7 @@ import ( "strings" "testing" + "github.com/apparentlymart/go-versions/versions" "github.com/apparentlymart/go-versions/versions/constraints" "github.com/davecgh/go-spew/spew" "github.com/google/go-cmp/cmp" @@ -646,6 +647,11 @@ func TestEnsureProviderVersions(t *testing.T) { Provider: beepProvider, Args: "2.0.0", }, + { + Event: "ProviderAlreadyInstalled", + Provider: beepProvider, + Args: versions.Version{Major: 2, Minor: 0, Patch: 0}, + }, }, } },