@@ -528,21 +528,25 @@ def main():
528528
529529 # Find the latest version directory
530530 if os .path .exists (platform_base ):
531- versions = [d for d in os .listdir (platform_base ) if os .path .isdir (os .path .join (platform_base , d ))]
532- ColorPrint .print_info (f"Found versions: { versions } " )
533- if versions :
534- # Sort versions and take the latest (could be improved with proper version sorting)
535- latest_version = sorted (versions )[- 1 ]
536- platform_path = os .path .join (platform_base , latest_version )
537-
538- dest_path = os .path .join (platform_path , "boards.local.txt" )
539- shutil .copyfile (boards_local_txt , dest_path )
540- ColorPrint .print_info (f"Copied boards.local.txt to { dest_path } " )
541- elif os .path .exists (os .path .join (platform_base , "boards.txt" )):
531+ if os .path .exists (os .path .join (platform_base , "boards.txt" )):
542532 shutil .copyfile (boards_local_txt , os .path .join (platform_base , "boards.local.txt" ))
543533 ColorPrint .print_info (f"Copied boards.local.txt to { os .path .join (platform_base , 'boards.local.txt' )} " )
544534 else :
545- ColorPrint .print_warn (f"No version directories found in { platform_base } " )
535+ versions = [d for d in os .listdir (platform_base ) if os .path .isdir (os .path .join (platform_base , d ))]
536+ ColorPrint .print_info (f"Found versions: { versions } " )
537+ # Filter out non-version directories (e.g., 'tools', 'libraries') while supporting 1.0-dev 1.0.0-offline-mode.102 etc
538+ versions = [v for v in versions if re .match (r'^(v)?\d+\.\d+(\.\d+(-\w+)?)?(\.\d+)?$' , v )]
539+ if versions :
540+ # Sort versions and take the latest (could be improved with proper version sorting)
541+ latest_version = sorted (versions )[- 1 ]
542+ platform_path = os .path .join (platform_base , latest_version )
543+
544+ dest_path = os .path .join (platform_path , "boards.local.txt" )
545+ shutil .copyfile (boards_local_txt , dest_path )
546+ ColorPrint .print_info (f"Copied boards.local.txt to { dest_path } " )
547+
548+ else :
549+ ColorPrint .print_warn (f"No version directories found in { platform_base } " )
546550 else :
547551 ColorPrint .print_warn (f"Platform path { platform_base } does not exist" )
548552
0 commit comments