@@ -102,9 +102,6 @@ func run(command *cobra.Command, args []string) {
102102 formatter .PrintErrorMessage ("Fully Qualified Board Name has incorrect format." )
103103 os .Exit (commands .ErrBadCall )
104104 }
105- packageName := fqbnParts [0 ]
106- coreName := fqbnParts [1 ]
107- boardName := fqbnParts [2 ]
108105
109106 pm := commands .InitPackageManager ()
110107 if err := pm .LoadHardware (); err != nil {
@@ -113,25 +110,9 @@ func run(command *cobra.Command, args []string) {
113110 }
114111
115112 // 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." )
135116 os .Exit (commands .ErrBadCall )
136117 }
137118
@@ -160,7 +141,7 @@ func run(command *cobra.Command, args []string) {
160141 var referencedPlatformRelease * cores.PlatformRelease
161142 var uploadTool * cores.Tool
162143 if split := strings .Split (uploadToolID , ":" ); len (split ) == 1 {
163- uploadTool = targetPackage .Tools [uploadToolID ]
144+ uploadTool = board . PlatformRelease . Platform . Package .Tools [uploadToolID ]
164145 } else if len (split ) == 2 {
165146 referencedPackage = pm .GetPackages ().Packages [split [0 ]]
166147 if referencedPackage == nil {
@@ -169,7 +150,7 @@ func run(command *cobra.Command, args []string) {
169150 }
170151 uploadTool = referencedPackage .Tools [split [1 ]]
171152
172- referencedPlatform = referencedPackage .Platforms [coreName ]
153+ referencedPlatform = referencedPackage .Platforms [board . PlatformRelease . Platform . Architecture ]
173154 if referencedPlatform != nil {
174155 referencedPlatformRelease = referencedPlatform .GetInstalled ()
175156 }
@@ -193,8 +174,8 @@ func run(command *cobra.Command, args []string) {
193174 if referencedPlatformRelease != nil {
194175 uploadProperties .Merge (referencedPlatformRelease .Properties )
195176 }
196- uploadProperties .Merge (platformRelease .Properties )
197- uploadProperties .Merge (platformRelease .RuntimeProperties ())
177+ uploadProperties .Merge (board . PlatformRelease .Properties )
178+ uploadProperties .Merge (board . PlatformRelease .RuntimeProperties ())
198179 uploadProperties .Merge (boardProperties )
199180
200181 uploadToolProperties := uploadProperties .SubTree ("tools." + uploadTool .Name )
0 commit comments