@@ -200,50 +200,62 @@ def check_config():
200
200
output = subprocess .check_output (
201
201
[arduino_cli , "version" ], stderr = subprocess .DEVNULL ,
202
202
)
203
+ except subprocess .CalledProcessError as e :
204
+ print ('"' + " " .join (e .cmd ) + '" failed with code: {}!' .format (e .returncode ))
205
+ print (e .stdout )
206
+ quit (e .returncode )
207
+ else :
203
208
res = re .match (r".*Version:\s+(\d+\.\d+\.\d+).*" , output .decode ("utf-8" ))
204
-
205
209
if res :
206
210
arduino_cli_version = res .group (1 )
207
211
print ("Arduino CLI version used: " + arduino_cli_version )
208
212
else :
209
- raise subprocess .CalledProcessError (1 , "re" )
210
- except subprocess .CalledProcessError :
211
- print (
212
- "Unable to define Arduino CLI version, use default: "
213
- + arduino_cli_default_version
214
- )
213
+ print (
214
+ "Unable to define Arduino CLI version, use default: "
215
+ + arduino_cli_default_version
216
+ )
215
217
216
218
try :
217
219
output = subprocess .check_output (
218
220
[arduino_cli , "core" , "search" , "stm32" , "--additional-urls" , stm32_url ],
219
221
stderr = subprocess .DEVNULL ,
220
222
)
223
+ except subprocess .CalledProcessError as e :
224
+ print ('"' + " " .join (e .cmd ) + '" failed with code: {}!' .format (e .returncode ))
225
+ print (e .stdout )
226
+ quit (e .returncode )
227
+ else :
221
228
if arduino_platform not in output .decode ("utf-8" ):
222
- raise subprocess .CalledProcessError (1 , "re" )
229
+ print (arduino_platform + " is not installed!" )
230
+ quit (1 )
223
231
# Add core and library path to sketches_path_list
224
232
try :
225
233
output = subprocess .check_output (
226
234
[arduino_cli , "config" , "dump" , "--format" , "json" ],
227
235
stderr = subprocess .DEVNULL ,
228
236
).decode ("utf-8" )
237
+ except subprocess .CalledProcessError as e :
238
+ print (
239
+ '"' + " " .join (e .cmd ) + '" failed with code: {}!' .format (e .returncode )
240
+ )
241
+ print (e .stdout )
242
+ quit (e .returncode )
243
+ else :
229
244
cli_config = json .loads (output )
230
245
if cli_config is not None :
231
246
if cli_config ["directories" ]["data" ] is not None :
232
247
sketches_path_list .append (cli_config ["directories" ]["data" ])
233
248
else :
234
- raise subprocess .CalledProcessError (3 , "No data directory" )
249
+ print ("No data directory" )
250
+ quit (1 )
235
251
if cli_config ["directories" ]["user" ] is not None :
236
252
sketches_path_list .append (cli_config ["directories" ]["user" ])
237
253
else :
238
- raise subprocess .CalledProcessError (2 , "No user directory" )
254
+ print ("No user directory!" )
255
+ quit (1 )
239
256
else :
240
- raise subprocess .CalledProcessError (1 , "No fqbn" )
241
- except subprocess .CalledProcessError :
242
- print ("No arduino-cli config!" )
243
- quit (1 )
244
- except subprocess .CalledProcessError :
245
- print (arduino_platform + " is not installed!" )
246
- quit (1 )
257
+ print ("No arduino-cli config!" )
258
+ quit (1 )
247
259
248
260
249
261
def load_core_config ():
@@ -449,32 +461,44 @@ def find_board():
449
461
try :
450
462
output = subprocess .check_output (
451
463
[arduino_cli , "board" , "listall" , "--format" , "json" ],
452
- stderr = subprocess .DEVNULL ,
464
+ stderr = subprocess .STDOUT ,
453
465
).decode ("utf-8" )
466
+ except subprocess .CalledProcessError as e :
467
+ print ('"' + " " .join (e .cmd ) + '" failed with code: {}!' .format (e .returncode ))
468
+ print (e .stdout )
469
+ quit (e .returncode )
470
+ else :
454
471
boards_list = json .loads (output )
455
472
if boards_list is not None :
456
473
for board in boards_list ["boards" ]:
457
474
if arduino_platform in board ["FQBN" ]:
458
475
fqbn_list_tmp .append (board ["FQBN" ])
459
476
if not len (fqbn_list_tmp ):
460
- raise subprocess .CalledProcessError (2 , "No fqbn" )
477
+ print ("No boards found for " + arduino_platform )
478
+ quit (1 )
461
479
else :
462
- raise subprocess .CalledProcessError (1 , "No fqbn" )
463
- except subprocess .CalledProcessError :
464
- print ("No fqbn found for " + arduino_platform + "!" )
465
- quit (1 )
480
+ print ("No boards found" + arduino_platform )
481
+ quit (1 )
466
482
467
483
# For STM32 core, pnum is requested
468
484
for fqbn in fqbn_list_tmp :
469
485
try :
470
486
output = subprocess .check_output (
471
487
[arduino_cli , "board" , "details" , "--format" , "json" , fqbn ],
472
- stderr = subprocess .DEVNULL ,
488
+ stderr = subprocess .STDOUT ,
473
489
).decode ("utf-8" )
490
+ except subprocess .CalledProcessError as e :
491
+ print (
492
+ '"' + " " .join (e .cmd ) + '" failed with code: {}!' .format (e .returncode )
493
+ )
494
+ print (e .stdout )
495
+ quit (e .returncode )
496
+ else :
474
497
board_detail = json .loads (output )
475
498
if board_detail is not None :
476
499
if "config_options" not in board_detail :
477
- raise subprocess .CalledProcessError (3 , "No config_options" )
500
+ print ("No config_options found for " + fqbn )
501
+ quit (1 )
478
502
for option in board_detail ["config_options" ]:
479
503
if option ["option" ] == "pnum" :
480
504
for value in option ["values" ]:
@@ -486,9 +510,7 @@ def find_board():
486
510
)
487
511
break
488
512
else :
489
- raise subprocess .CalledProcessError (1 , "No fqbn" )
490
- except subprocess .CalledProcessError as e :
491
- print ('No fqbn detail found for:"' + " " .join (e .cmd ) + '"!' )
513
+ print ('No detail found for:"' + fqbn + '"!' )
492
514
if board_found :
493
515
board_fqbn = collections .OrderedDict (sorted (board_found .items ()))
494
516
else :
0 commit comments