@@ -181,6 +181,8 @@ func Init(req *rpc.InitRequest, responseCallback func(r *rpc.InitResponse)) *sta
181
181
// If this is not done the information of the uninstall core is kept in memory,
182
182
// even if it should not.
183
183
instance .PackageManager .Clear ()
184
+ ctagsTool := getBuiltinCtagsTool (instance .PackageManager )
185
+ serialDiscoveryTool := getBuiltinSerialDiscoveryTool (instance .PackageManager )
184
186
185
187
// Load Platforms
186
188
urls := []string {globals .DefaultIndexURL }
@@ -254,48 +256,27 @@ func Init(req *rpc.InitRequest, responseCallback func(r *rpc.InitResponse)) *sta
254
256
}
255
257
256
258
// Install tools if necessary
257
- toolHasBeenInstalled := false
258
- ctagsTool , err := getBuiltinCtagsTool (instance .PackageManager )
259
+ ctagsHasBeenInstalled , err := instance .installToolIfMissing (ctagsTool , downloadCallback , taskCallback )
259
260
if err != nil {
260
261
s := status .Newf (codes .Internal , err .Error ())
261
262
responseCallback (& rpc.InitResponse {
262
263
Message : & rpc.InitResponse_Error {
263
264
Error : s .Proto (),
264
265
},
265
266
})
266
- } else {
267
- toolHasBeenInstalled , err = instance .installToolIfMissing (ctagsTool , downloadCallback , taskCallback )
268
- if err != nil {
269
- s := status .Newf (codes .Internal , err .Error ())
270
- responseCallback (& rpc.InitResponse {
271
- Message : & rpc.InitResponse_Error {
272
- Error : s .Proto (),
273
- },
274
- })
275
- }
276
267
}
277
268
278
- serialDiscoveryTool , _ := getBuiltinSerialDiscoveryTool ( instance .PackageManager )
269
+ serialHasBeenInstalled , err := instance .installToolIfMissing ( serialDiscoveryTool , downloadCallback , taskCallback )
279
270
if err != nil {
280
271
s := status .Newf (codes .Internal , err .Error ())
281
272
responseCallback (& rpc.InitResponse {
282
273
Message : & rpc.InitResponse_Error {
283
274
Error : s .Proto (),
284
275
},
285
276
})
286
- } else {
287
- toolHasBeenInstalled , err = instance .installToolIfMissing (serialDiscoveryTool , downloadCallback , taskCallback )
288
- if err != nil {
289
- s := status .Newf (codes .Internal , err .Error ())
290
- responseCallback (& rpc.InitResponse {
291
- Message : & rpc.InitResponse_Error {
292
- Error : s .Proto (),
293
- },
294
- })
295
- }
296
277
}
297
278
298
- if toolHasBeenInstalled {
279
+ if ctagsHasBeenInstalled || serialHasBeenInstalled {
299
280
// We installed at least one new tool after loading hardware
300
281
// so we must reload again otherwise we would never found them.
301
282
for _ , err := range instance .PackageManager .LoadHardware () {
0 commit comments