@@ -618,19 +618,28 @@ func (pm *PackageManager) loadToolReleasesFromTool(tool *cores.Tool, toolPath *p
618
618
toolVersions .FilterDirs ()
619
619
toolVersions .FilterOutHiddenFiles ()
620
620
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 {
627
623
return err
628
624
}
629
625
}
630
626
631
627
return nil
632
628
}
633
629
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
+
634
643
// LoadToolsFromBundleDirectories FIXMEDOC
635
644
func (pm * PackageManager ) LoadToolsFromBundleDirectories (dirs paths.PathList ) []error {
636
645
var merr []error
0 commit comments