@@ -16,21 +16,13 @@ type firmware struct {
1616
1717type combo struct {
1818 match string
19- prefer string
20- avoid string
2119 loader string
2220}
2321
24- func isPreferred (existing bool , path string , board combo ) bool {
22+ func isPreferred (path string ) bool {
2523 if path == "" {
2624 return false
2725 }
28- if board .avoid != "" && strings .Contains (path , board .avoid ) {
29- return false
30- }
31- if existing && ! strings .Contains (path , board .prefer ) {
32- return false
33- }
3426 return true
3527}
3628
@@ -39,13 +31,13 @@ func GetCompatibleWith(name string, rootPath string) map[string][]firmware {
3931 files := make (map [string ][]firmware )
4032
4133 knownBoards := make (map [string ]combo )
42- knownBoards ["mkr1000" ] = combo {match : "(WINC1500)*(3a0)" , loader : "WINC1500/Firmware* " }
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 " }
34+ knownBoards ["mkr1000" ] = combo {match : "(WINC1500)*(3a0)" , loader : "WINC1500/FirmwareUpdater.mkr1000.ino.bin " }
35+ knownBoards ["mkrwifi1010" ] = combo {match : "NINA_W102.bin " , loader : "NINA/FirmwareUpdater. mkrwifi1010.ino.bin " }
36+ knownBoards ["nano_33_iot" ] = combo {match : "NINA_W102.bin " , loader : "NINA/FirmwareUpdater. nano_33_iot.ino.bin " }
37+ knownBoards ["mkrvidor4000" ] = combo {match : "NINA_W102.bin " , loader : "NINA/FirmwareUpdater.mkrvidor4000.ino.bin " }
38+ knownBoards ["uno2018" ] = combo {match : "NINA_W102-Uno_WiFi_Rev2.bin " , loader : "NINA/FirmwareUpdater.unowifirev2.without_bl.ino.hex " }
4739 knownBoards ["mkrnb1500" ] = combo {match : "SARA" , loader : "SARA/SerialSARAPassthrough*" }
48- // knownBoards["nanorp2040connect"] = combo{match: "(NINA).*( Nano_RP2040_Connect) ", loader: "NINA/Firmware.* nanorp2040connect.* "}
40+ knownBoards ["nanorp2040connect" ] = combo {match : "NINA_W102- Nano_RP2040_Connect" , loader : "NINA/FirmwareUpdater. nanorp2040connect.ino.elf " }
4941
5042 listAll := false
5143
@@ -74,16 +66,12 @@ func GetCompatibleWith(name string, rootPath string) map[string][]firmware {
7466 IsLoader : loader .MatchString (unixPath ) && ! listAll ,
7567 }
7668 folder := filepath .Dir (path )
77- lowerPath , _ := filepath .Rel (root , path )
78- lowerPath = strings .ToLower (lowerPath )
79- _ , alreadyPopulated := files [folder ]
8069 if strings .HasPrefix (f .Name , "firmwares" ) && ! f .IsLoader {
8170 return nil
8271 }
8372 if listAll && ! strings .HasPrefix (f .Name , "firmwares" ) {
8473 files [folder ] = append (files [folder ], f )
85- }
86- if ! listAll && (fw .MatchString (path ) || f .IsLoader ) && isPreferred (alreadyPopulated , lowerPath , knownBoards [name ]) {
74+ } else if ! listAll && (fw .MatchString (path ) || f .IsLoader ) {
8775 files [folder ] = append (files [folder ], f )
8876 }
8977 return nil
0 commit comments