@@ -459,9 +459,7 @@ def install_boards_local_txt(core_fqbn, boards_local_txt):
459
459
try :
460
460
local_app_data_dir = os .environ .get ('HOME' , '' )
461
461
data_dir = None
462
- if os .path .exists (os .path .join (local_app_data_dir , 'Arduino' )):
463
- data_dir = os .path .join (local_app_data_dir , 'Arduino' )
464
- elif os .path .exists (os .path .join (local_app_data_dir , '.arduino15' )):
462
+ if os .path .exists (os .path .join (local_app_data_dir , '.arduino15' )):
465
463
data_dir = os .path .join (local_app_data_dir , '.arduino15' )
466
464
elif os .path .exists (os .path .join (local_app_data_dir , '.arduino' )):
467
465
data_dir = os .path .join (local_app_data_dir , '.arduino' )
@@ -476,10 +474,13 @@ def install_boards_local_txt(core_fqbn, boards_local_txt):
476
474
ColorPrint .print_info (f"Using arduino-cli config: { config_output .strip ()} " )
477
475
478
476
# Extract data directory, with fallback to default
479
- data_dir = config .get ("directories" , {}).get ("data" , data_dir )
477
+ data_dir = config .get ("directories" , {}).get ("data" , "" )
480
478
if not data_dir :
481
- ColorPrint .print_warn ("No valid data directory found, cannot copy boards.local.txt" )
482
- return
479
+ if os .path .exists (os .path .join (local_app_data_dir , 'Arduino' )):
480
+ data_dir = os .path .join (local_app_data_dir , 'Arduino' )
481
+ else :
482
+ ColorPrint .print_warn ("No valid data directory found, cannot copy boards.local.txt" )
483
+ return
483
484
484
485
ColorPrint .print_info (f"Using data directory: { data_dir } " )
485
486
@@ -501,8 +502,7 @@ def install_boards_local_txt(core_fqbn, boards_local_txt):
501
502
os .path .exists (os .path .join (data_dir , "packages" , architecture , "hardware" , architecture )) else \
502
503
os .path .join (data_dir , "hardware" , vendor , architecture ) if \
503
504
os .path .exists (os .path .join (data_dir , "hardware" , vendor , architecture )) else \
504
- os .path .join (data_dir , "hardware" ,
505
- architecture , architecture )
505
+ os .path .join (data_dir , "hardware" , architecture , architecture )
506
506
507
507
# Find the latest version directory
508
508
if os .path .exists (platform_base ):
@@ -511,9 +511,10 @@ def install_boards_local_txt(core_fqbn, boards_local_txt):
511
511
ColorPrint .print_info (f"Copied boards.local.txt to { os .path .join (platform_base , 'boards.local.txt' )} " )
512
512
else :
513
513
versions = [d for d in os .listdir (platform_base ) if os .path .isdir (os .path .join (platform_base , d ))]
514
- ColorPrint .print_info (f"Found versions: { versions } " )
514
+ ColorPrint .print_info (f"Found subdirectories for { platform_base } : \n { versions } " )
515
515
# Filter out non-version directories (e.g., 'tools', 'libraries') while supporting 1.0-dev 1.0.0-offline-mode.102 etc
516
516
versions = [v for v in versions if re .match (r'^(v)?\d+\.\d+(\.\d+(-\w+)?)?(\.\d+)?$' , v )]
517
+ ColorPrint .print_info (f"Filtered versions: { versions } " )
517
518
if versions :
518
519
# Sort versions and take the latest (could be improved with proper version sorting)
519
520
latest_version = sorted (versions )[- 1 ]
0 commit comments