@@ -200,50 +200,62 @@ def check_config():
200200output = subprocess .check_output (
201201 [arduino_cli ,"version" ],stderr = subprocess .DEVNULL ,
202202 )
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 :
203208res = re .match (r".*Version:\s+(\d+\.\d+\.\d+).*" ,output .decode ("utf-8" ))
204-
205209if res :
206210arduino_cli_version = res .group (1 )
207211print ("Arduino CLI version used: " + arduino_cli_version )
208212else :
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+ )
215217
216218try :
217219output = subprocess .check_output (
218220 [arduino_cli ,"core" ,"search" ,"stm32" ,"--additional-urls" ,stm32_url ],
219221stderr = subprocess .DEVNULL ,
220222 )
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 :
221228if arduino_platform not in output .decode ("utf-8" ):
222- raise subprocess .CalledProcessError (1 ,"re" )
229+ print (arduino_platform + " is not installed!" )
230+ quit (1 )
223231# Add core and library path to sketches_path_list
224232try :
225233output = subprocess .check_output (
226234 [arduino_cli ,"config" ,"dump" ,"--format" ,"json" ],
227235stderr = subprocess .DEVNULL ,
228236 ).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 :
229244cli_config = json .loads (output )
230245if cli_config is not None :
231246if cli_config ["directories" ]["data" ]is not None :
232247sketches_path_list .append (cli_config ["directories" ]["data" ])
233248else :
234- raise subprocess .CalledProcessError (3 ,"No data directory" )
249+ print ("No data directory" )
250+ quit (1 )
235251if cli_config ["directories" ]["user" ]is not None :
236252sketches_path_list .append (cli_config ["directories" ]["user" ])
237253else :
238- raise subprocess .CalledProcessError (2 ,"No user directory" )
254+ print ("No user directory!" )
255+ quit (1 )
239256else :
240- raise subprocess .CalledProcessError (1 ,"No fqbn" )
241- except subprocess .CalledProcessError :
242- print ("No arduino-cli config!" )
243- quit ()
244- except subprocess .CalledProcessError :
245- print (arduino_platform + " is not installed!" )
246- quit ()
257+ print ("No arduino-cli config!" )
258+ quit (1 )
247259
248260
249261def load_core_config ():
@@ -386,7 +398,7 @@ def manage_inos():
386398break
387399else :
388400print ("Sketch {} path does not exist!" .format (args .ino ))
389- quit ()
401+ quit (1 )
390402# Sketches listed in a file
391403elif args .file :
392404assert os .path .exists (args .file ),"Sketches list file does not exist"
@@ -417,7 +429,7 @@ def manage_inos():
417429sketch_list .append (sketch_default )
418430if len (sketch_list )== 0 :
419431print ("No sketch to build for " + arduino_platform + "!" )
420- quit ()
432+ quit (1 )
421433
422434
423435# Find all .ino files and save directory
@@ -449,32 +461,41 @@ def find_board():
449461try :
450462output = subprocess .check_output (
451463 [arduino_cli ,"board" ,"listall" ,"--format" ,"json" ],
452- stderr = subprocess .DEVNULL ,
464+ stderr = subprocess .STDOUT ,
453465 ).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 :
454471boards_list = json .loads (output )
455472if boards_list is not None :
456473for board in boards_list ["boards" ]:
457474if arduino_platform in board ["FQBN" ]:
458475fqbn_list_tmp .append (board ["FQBN" ])
459- if not len (fqbn_list_tmp ):
460- raise subprocess .CalledProcessError (2 ,"No fqbn" )
461- else :
462- raise subprocess .CalledProcessError (1 ,"No fqbn" )
463- except subprocess .CalledProcessError :
464- print ("No fqbn found for " + arduino_platform + "!" )
465- quit ()
476+ if not len (fqbn_list_tmp ):
477+ print ("No boards found for " + arduino_platform )
478+ quit (1 )
466479
467480# For STM32 core, pnum is requested
468481for fqbn in fqbn_list_tmp :
469482try :
470483output = subprocess .check_output (
471484 [arduino_cli ,"board" ,"details" ,"--format" ,"json" ,fqbn ],
472- stderr = subprocess .DEVNULL ,
485+ stderr = subprocess .STDOUT ,
473486 ).decode ("utf-8" )
487+ except subprocess .CalledProcessError as e :
488+ print (
489+ '"' + " " .join (e .cmd )+ '" failed with code: {}!' .format (e .returncode )
490+ )
491+ print (e .stdout )
492+ quit (e .returncode )
493+ else :
474494board_detail = json .loads (output )
475495if board_detail is not None :
476496if "config_options" not in board_detail :
477- raise subprocess .CalledProcessError (3 ,"No config_options" )
497+ print ("No config_options found for " + fqbn )
498+ quit (1 )
478499for option in board_detail ["config_options" ]:
479500if option ["option" ]== "pnum" :
480501for value in option ["values" ]:
@@ -486,14 +507,12 @@ def find_board():
486507 )
487508break
488509else :
489- raise subprocess .CalledProcessError (1 ,"No fqbn" )
490- except subprocess .CalledProcessError as e :
491- print ("No fqbn detail found for " + e .cmd + "!" )
510+ print ('No detail found for:"' + fqbn + '"!' )
492511if board_found :
493512board_fqbn = collections .OrderedDict (sorted (board_found .items ()))
494513else :
495514print ("No board found for " + arduino_platform + "!" )
496- quit ()
515+ quit (1 )
497516
498517
499518# Check the status