@@ -102,9 +102,6 @@ func run(command *cobra.Command, args []string) {
102
102
formatter .PrintErrorMessage ("Fully Qualified Board Name has incorrect format." )
103
103
os .Exit (commands .ErrBadCall )
104
104
}
105
- packageName := fqbnParts [0 ]
106
- coreName := fqbnParts [1 ]
107
- boardName := fqbnParts [2 ]
108
105
109
106
pm := commands .InitPackageManager ()
110
107
if err := pm .LoadHardware (); err != nil {
@@ -113,25 +110,9 @@ func run(command *cobra.Command, args []string) {
113
110
}
114
111
115
112
// Find target board
116
- // TODO: Make a packagemanager function to do this
117
- targetPackage := pm .GetPackages ().Packages [packageName ]
118
- if targetPackage == nil {
119
- formatter .PrintErrorMessage ("Unknown package " + packageName + "." )
120
- os .Exit (commands .ErrBadCall )
121
- }
122
- platform := targetPackage .Platforms [coreName ]
123
- if platform == nil {
124
- formatter .PrintErrorMessage ("Unknown platform " + packageName + ":" + coreName + "." )
125
- os .Exit (commands .ErrBadCall )
126
- }
127
- platformRelease := platform .GetInstalled ()
128
- if platformRelease == nil {
129
- formatter .PrintErrorMessage ("Platform " + packageName + ":" + coreName + " is not installed." )
130
- os .Exit (commands .ErrBadCall )
131
- }
132
- board := platformRelease .Boards [boardName ]
133
- if board == nil {
134
- formatter .PrintErrorMessage ("Unknown board " + packageName + ":" + coreName + ":" + boardName + "." )
113
+ board , err := pm .FindBoardWithFQBN (fqbn )
114
+ if err != nil {
115
+ formatter .PrintError (err , "Invalid FQBN." )
135
116
os .Exit (commands .ErrBadCall )
136
117
}
137
118
@@ -160,7 +141,7 @@ func run(command *cobra.Command, args []string) {
160
141
var referencedPlatformRelease * cores.PlatformRelease
161
142
var uploadTool * cores.Tool
162
143
if split := strings .Split (uploadToolID , ":" ); len (split ) == 1 {
163
- uploadTool = targetPackage .Tools [uploadToolID ]
144
+ uploadTool = board . PlatformRelease . Platform . Package .Tools [uploadToolID ]
164
145
} else if len (split ) == 2 {
165
146
referencedPackage = pm .GetPackages ().Packages [split [0 ]]
166
147
if referencedPackage == nil {
@@ -169,7 +150,7 @@ func run(command *cobra.Command, args []string) {
169
150
}
170
151
uploadTool = referencedPackage .Tools [split [1 ]]
171
152
172
- referencedPlatform = referencedPackage .Platforms [coreName ]
153
+ referencedPlatform = referencedPackage .Platforms [board . PlatformRelease . Platform . Architecture ]
173
154
if referencedPlatform != nil {
174
155
referencedPlatformRelease = referencedPlatform .GetInstalled ()
175
156
}
@@ -193,8 +174,8 @@ func run(command *cobra.Command, args []string) {
193
174
if referencedPlatformRelease != nil {
194
175
uploadProperties .Merge (referencedPlatformRelease .Properties )
195
176
}
196
- uploadProperties .Merge (platformRelease .Properties )
197
- uploadProperties .Merge (platformRelease .RuntimeProperties ())
177
+ uploadProperties .Merge (board . PlatformRelease .Properties )
178
+ uploadProperties .Merge (board . PlatformRelease .RuntimeProperties ())
198
179
uploadProperties .Merge (boardProperties )
199
180
200
181
uploadToolProperties := uploadProperties .SubTree ("tools." + uploadTool .Name )
0 commit comments