From 634247e8123e1a763e0984da3e2b093243ee833d Mon Sep 17 00:00:00 2001 From: Chance <chance.fyii@gmail.com> Date: Fri, 26 Jul 2024 11:24:19 +0800 Subject: [PATCH] Revert `PreUse` hook --- internal/sdk.go | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/internal/sdk.go b/internal/sdk.go index 3dd4a6e6..306b90f8 100644 --- a/internal/sdk.go +++ b/internal/sdk.go @@ -332,6 +332,10 @@ func (b *Sdk) PreUse(version Version, scope UseScope) (Version, error) { // not want to change the version or not implement the PreUse function. // We can simply fuzzy match the version based on the input version. if newVersion == "" { + // Before fuzzy matching, perform exact matching first. + if b.CheckExists(version) { + return version, nil + } installedVersions := make(util.VersionSort, 0, len(installedSdks)) for _, sdk := range installedSdks { installedVersions = append(installedVersions, string(sdk.Main.Version)) @@ -360,16 +364,14 @@ func (b *Sdk) PreUse(version Version, scope UseScope) (Version, error) { func (b *Sdk) Use(version Version, scope UseScope) error { logger.Debugf("Use SDK version: %s, scope:%v\n", string(version), scope) + version, err := b.PreUse(version, scope) + if err != nil { + return err + } + + label := b.label(version) if !b.CheckExists(version) { - v, err := b.PreUse(version, scope) - if err != nil { - return err - } - version = v - label := b.label(version) - if !b.CheckExists(version) { - return fmt.Errorf("%s is not installed", label) - } + return fmt.Errorf("%s is not installed", label) } if !env.IsHookEnv() {