@@ -618,19 +618,28 @@ func (pm *PackageManager) loadToolReleasesFromTool(tool *cores.Tool, toolPath *p
618618 toolVersions .FilterDirs ()
619619 toolVersions .FilterOutHiddenFiles ()
620620 for _ , versionPath := range toolVersions {
621- if toolReleasePath , err := versionPath .Abs (); err == nil {
622- version := semver .ParseRelaxed (versionPath .Base ())
623- release := tool .GetOrCreateRelease (version )
624- release .InstallDir = toolReleasePath
625- pm .Log .WithField ("tool" , release ).Infof ("Loaded tool" )
626- } else {
621+ version := semver .ParseRelaxed (versionPath .Base ())
622+ if err := pm .loadToolReleaseFromDirectory (tool , version , versionPath ); err != nil {
627623 return err
628624 }
629625 }
630626
631627 return nil
632628}
633629
630+ func (pm * PackageManager ) loadToolReleaseFromDirectory (tool * cores.Tool , version * semver.RelaxedVersion , toolReleasePath * paths.Path ) error {
631+ if absToolReleasePath , err := toolReleasePath .Abs (); err != nil {
632+ return errors .New (tr ("error opening %s" , absToolReleasePath ))
633+ } else if ! absToolReleasePath .IsDir () {
634+ return errors .New (tr ("%s is not a directory" , absToolReleasePath ))
635+ } else {
636+ toolRelease := tool .GetOrCreateRelease (version )
637+ toolRelease .InstallDir = absToolReleasePath
638+ pm .Log .WithField ("tool" , toolRelease ).Infof ("Loaded tool" )
639+ return nil
640+ }
641+ }
642+
634643// LoadToolsFromBundleDirectories FIXMEDOC
635644func (pm * PackageManager ) LoadToolsFromBundleDirectories (dirs paths.PathList ) []error {
636645 var merr []error
0 commit comments