@@ -40,10 +40,10 @@ func GetCompatibleWith(name string) map[string][]firmware {
4040
4141 knownBoards := make (map [string ]combo )
4242 knownBoards ["mkr1000" ] = combo {match : "(WINC1500)*(3a0)" , loader : "WINC1500/Firmware*" }
43- knownBoards ["mkrwifi1010" ] = combo {match : "(NINA)" , loader : "NINA/Firmware*(mkrwifi) *" , avoid : "uno" }
44- knownBoards ["nano_33_iot" ] = combo {match : "(NINA)" , loader : "NINA/Firmware*(mkrwifi) *" , avoid : "uno" }
45- knownBoards ["mkrvidor4000" ] = combo {match : "(NINA)" , loader : "NINA/Firmware*( mkrvidor) *" , avoid : "uno" }
46- knownBoards ["uno2018" ] = combo {match : "(NINA)" , loader : "NINA/Firmware*( unowifi) *" , prefer : "uno" , avoid : "mkr" }
43+ knownBoards ["mkrwifi1010" ] = combo {match : "(NINA)" , loader : "NINA/Firmware.*mkrwifi1010. *" , avoid : "uno" }
44+ knownBoards ["nano_33_iot" ] = combo {match : "(NINA)" , loader : "NINA/Firmware.*nano_33_iot. *" , avoid : "uno" }
45+ knownBoards ["mkrvidor4000" ] = combo {match : "(NINA)" , loader : "NINA/Firmware.* mkrvidor. *" , avoid : "uno" }
46+ knownBoards ["uno2018" ] = combo {match : "(NINA)" , loader : "NINA/Firmware.* unowifi. *" , prefer : "uno" , avoid : "mkr" }
4747 knownBoards ["mkrnb1500" ] = combo {match : "SARA" , loader : "SARA/SerialSARAPassthrough*" }
4848
4949 listAll := false
@@ -55,25 +55,28 @@ func GetCompatibleWith(name string) map[string][]firmware {
5555 exePath , _ := os .Executable ()
5656 root := filepath .Dir (exePath )
5757 root = filepath .Join (root , "firmwares" )
58+ loader := regexp .MustCompile (knownBoards [name ].loader )
59+ fw := regexp .MustCompile (knownBoards [name ].match )
5860
5961 err := filepath .Walk (root , func (path string , info os.FileInfo , err error ) error {
62+ if info .IsDir () {
63+ return nil
64+ }
6065 unixPath := filepath .ToSlash (path )
6166 parts := strings .Split (unixPath , "/" )
6267 fancyName := parts [len (parts )- 3 ] + " " + parts [len (parts )- 2 ]
63- loader := regexp .MustCompile (knownBoards [name ].loader )
64- fw := regexp .MustCompile (knownBoards [name ].match )
6568 f := firmware {
6669 Path : path ,
6770 Name : fancyName ,
6871 IsLoader : loader .MatchString (path ) && ! listAll ,
6972 }
70- if info .IsDir () {
71- return nil
72- }
7373 folder := filepath .Dir (path )
7474 lowerPath , _ := filepath .Rel (root , path )
7575 lowerPath = strings .ToLower (lowerPath )
7676 _ , alreadyPopulated := files [folder ]
77+ if strings .HasPrefix (f .Name , "firmwares" ) && ! f .IsLoader {
78+ return nil
79+ }
7780 if listAll && ! strings .HasPrefix (f .Name , "firmwares" ) {
7881 files [folder ] = append (files [folder ], f )
7982 }
0 commit comments