@@ -18,9 +18,9 @@ package arduino
1818import (
1919 "context"
2020 "errors"
21+ "fmt"
2122 "log/slog"
2223 "sync"
23- "time"
2424
2525 "github.com/arduino/arduino-cli/commands"
2626 "github.com/arduino/arduino-cli/commands/cmderrors"
@@ -134,42 +134,31 @@ func (a *ArduinoPlatformUpdater) UpgradePackages(ctx context.Context, names []st
134134 downloadProgressCB := func (curr * rpc.DownloadProgress ) {
135135 data := helpers .ArduinoCLIDownloadProgressToString (curr )
136136 slog .Debug ("Download progress" , slog .String ("download_progress" , data ))
137- eventsCh <- update.Event { Type : update .UpgradeLineEvent , Data : data }
137+ eventsCh <- update .NewDataEvent ( update .UpgradeLineEvent , data )
138138 }
139139 taskProgressCB := func (msg * rpc.TaskProgress ) {
140140 data := helpers .ArduinoCLITaskProgressToString (msg )
141141 slog .Debug ("Task progress" , slog .String ("task_progress" , data ))
142- eventsCh <- update.Event { Type : update .UpgradeLineEvent , Data : data }
142+ eventsCh <- update .NewDataEvent ( update .UpgradeLineEvent , data )
143143 }
144144
145145 go func () {
146146 defer a .lock .Unlock ()
147147 defer close (eventsCh )
148148
149- ctx , cancel := context .WithTimeout (ctx , 10 * time .Minute )
150- defer cancel ()
151-
152- eventsCh <- update.Event {Type : update .StartEvent , Data : "Upgrade is starting" }
149+ eventsCh <- update .NewDataEvent (update .StartEvent , "Upgrade is starting" )
153150
154151 logrus .SetLevel (logrus .ErrorLevel ) // Reduce the log level of arduino-cli
155152 srv := commands .NewArduinoCoreServer ()
156153
157154 if err := setConfig (ctx , srv ); err != nil {
158- eventsCh <- update.Event {
159- Type : update .ErrorEvent ,
160- Err : err ,
161- Data : "Error setting additional URLs" ,
162- }
155+ eventsCh <- update .NewErrorEvent (fmt .Errorf ("error setting config: %w" , err ))
163156 return
164157 }
165158
166159 var inst * rpc.Instance
167160 if resp , err := srv .Create (ctx , & rpc.CreateRequest {}); err != nil {
168- eventsCh <- update.Event {
169- Type : update .ErrorEvent ,
170- Err : err ,
171- Data : "Error creating Arduino instance" ,
172- }
161+ eventsCh <- update .NewErrorEvent (fmt .Errorf ("error creating arduino-cli instance: %w" , err ))
173162 return
174163 } else {
175164 inst = resp .GetInstance ()
@@ -185,19 +174,11 @@ func (a *ArduinoPlatformUpdater) UpgradePackages(ctx context.Context, names []st
185174 {
186175 stream , _ := commands .UpdateIndexStreamResponseToCallbackFunction (ctx , downloadProgressCB )
187176 if err := srv .UpdateIndex (& rpc.UpdateIndexRequest {Instance : inst }, stream ); err != nil {
188- eventsCh <- update.Event {
189- Type : update .ErrorEvent ,
190- Err : err ,
191- Data : "Error updating index" ,
192- }
177+ eventsCh <- update .NewErrorEvent (fmt .Errorf ("error updating index: %w" , err ))
193178 return
194179 }
195180 if err := srv .Init (& rpc.InitRequest {Instance : inst }, commands .InitStreamResponseToCallbackFunction (ctx , nil )); err != nil {
196- eventsCh <- update.Event {
197- Type : update .ErrorEvent ,
198- Err : err ,
199- Data : "Error initializing Arduino instance" ,
200- }
181+ eventsCh <- update .NewErrorEvent (fmt .Errorf ("error initializing instance: %w" , err ))
201182 return
202183 }
203184 }
@@ -219,17 +200,13 @@ func (a *ArduinoPlatformUpdater) UpgradePackages(ctx context.Context, names []st
219200 ); err != nil {
220201 var alreadyPresent * cmderrors.PlatformAlreadyAtTheLatestVersionError
221202 if errors .As (err , & alreadyPresent ) {
222- eventsCh <- update.Event { Type : update .UpgradeLineEvent , Data : alreadyPresent .Error ()}
203+ eventsCh <- update .NewDataEvent ( update .UpgradeLineEvent , alreadyPresent .Error ())
223204 return
224205 }
225206
226207 var notFound * cmderrors.PlatformNotFoundError
227208 if ! errors .As (err , & notFound ) {
228- eventsCh <- update.Event {
229- Type : update .ErrorEvent ,
230- Err : err ,
231- Data : "Error upgrading platform" ,
232- }
209+ eventsCh <- update .NewErrorEvent (fmt .Errorf ("error upgrading platform: %w" , err ))
233210 return
234211 }
235212 // If the platform is not found, we will try to install it
@@ -246,23 +223,16 @@ func (a *ArduinoPlatformUpdater) UpgradePackages(ctx context.Context, names []st
246223 ),
247224 )
248225 if err != nil {
249- eventsCh <- update.Event {
250- Type : update .ErrorEvent ,
251- Err : err ,
252- Data : "Error installing platform" ,
253- }
226+ eventsCh <- update .NewErrorEvent (fmt .Errorf ("error installing platform: %w" , err ))
254227 return
255228 }
256229 } else if respCB ().GetPlatform () == nil {
257- eventsCh <- update.Event {
258- Type : update .ErrorEvent ,
259- Data : "platform upgrade failed" ,
260- }
230+ eventsCh <- update .NewErrorEvent (fmt .Errorf ("platform upgrade failed" ))
261231 return
262232 }
263233
264234 cbw := orchestrator .NewCallbackWriter (func (line string ) {
265- eventsCh <- update.Event { Type : update .UpgradeLineEvent , Data : line }
235+ eventsCh <- update .NewDataEvent ( update .UpgradeLineEvent , line )
266236 })
267237
268238 err := srv .BurnBootloader (
@@ -274,11 +244,7 @@ func (a *ArduinoPlatformUpdater) UpgradePackages(ctx context.Context, names []st
274244 commands .BurnBootloaderToServerStreams (ctx , cbw , cbw ),
275245 )
276246 if err != nil {
277- eventsCh <- update.Event {
278- Type : update .ErrorEvent ,
279- Err : err ,
280- Data : "Error burning bootloader" ,
281- }
247+ eventsCh <- update .NewErrorEvent (fmt .Errorf ("error burning bootloader: %w" , err ))
282248 return
283249 }
284250 }()
0 commit comments