@@ -40,10 +40,10 @@ func GetCompatibleWith(name string) map[string][]firmware {
40
40
41
41
knownBoards := make (map [string ]combo )
42
42
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" }
47
47
knownBoards ["mkrnb1500" ] = combo {match : "SARA" , loader : "SARA/SerialSARAPassthrough*" }
48
48
49
49
listAll := false
@@ -55,25 +55,28 @@ func GetCompatibleWith(name string) map[string][]firmware {
55
55
exePath , _ := os .Executable ()
56
56
root := filepath .Dir (exePath )
57
57
root = filepath .Join (root , "firmwares" )
58
+ loader := regexp .MustCompile (knownBoards [name ].loader )
59
+ fw := regexp .MustCompile (knownBoards [name ].match )
58
60
59
61
err := filepath .Walk (root , func (path string , info os.FileInfo , err error ) error {
62
+ if info .IsDir () {
63
+ return nil
64
+ }
60
65
unixPath := filepath .ToSlash (path )
61
66
parts := strings .Split (unixPath , "/" )
62
67
fancyName := parts [len (parts )- 3 ] + " " + parts [len (parts )- 2 ]
63
- loader := regexp .MustCompile (knownBoards [name ].loader )
64
- fw := regexp .MustCompile (knownBoards [name ].match )
65
68
f := firmware {
66
69
Path : path ,
67
70
Name : fancyName ,
68
71
IsLoader : loader .MatchString (path ) && ! listAll ,
69
72
}
70
- if info .IsDir () {
71
- return nil
72
- }
73
73
folder := filepath .Dir (path )
74
74
lowerPath , _ := filepath .Rel (root , path )
75
75
lowerPath = strings .ToLower (lowerPath )
76
76
_ , alreadyPopulated := files [folder ]
77
+ if strings .HasPrefix (f .Name , "firmwares" ) && ! f .IsLoader {
78
+ return nil
79
+ }
77
80
if listAll && ! strings .HasPrefix (f .Name , "firmwares" ) {
78
81
files [folder ] = append (files [folder ], f )
79
82
}
0 commit comments