@@ -2620,12 +2620,19 @@ def idf_custom_component(source, target, env):
26202620            try :
26212621                shutil .copy (str (Path (PROJECT_SRC_DIR ) /  "idf_component.yml.orig" ), str (Path (PROJECT_SRC_DIR ) /  "idf_component.yml" ))
26222622                print ("*** Original \" idf_component.yml\"  restored ***" )
2623-             except  (FileNotFoundError , PermissionError , OSError ): # no "idf_component.yml" in source folder 
2624-                 try :
2625-                     os .remove (str (Path (PROJECT_SRC_DIR ) /  "idf_component.yml" ))
2626-                     print ("*** pioarduino generated \" idf_component.yml\"  removed ***" )
2627-                 except  (FileNotFoundError , PermissionError , OSError ):
2628-                     print ("*** no custom \" idf_component.yml\"  found for removing ***" )
2623+             except  (FileNotFoundError , PermissionError , OSError ):
2624+                 # Only remove idf_component.yml if a .orig backup exists 
2625+                 # This indicates the file was created/modified by pioarduino 
2626+                 orig_file  =  Path (PROJECT_SRC_DIR ) /  "idf_component.yml.orig" 
2627+                 yml_file  =  Path (PROJECT_SRC_DIR ) /  "idf_component.yml" 
2628+                 if  orig_file .exists () and  yml_file .exists ():
2629+                     try :
2630+                         os .remove (str (yml_file ))
2631+                         print ("*** pioarduino generated \" idf_component.yml\"  removed ***" )
2632+                     except  (FileNotFoundError , PermissionError , OSError ):
2633+                         print ("*** Failed to remove pioarduino generated \" idf_component.yml\"  ***" )
2634+                 elif  yml_file .exists ():
2635+                     print ("*** User-created \" idf_component.yml\"  preserved (no .orig backup found) ***" )
26292636        if  "arduino"  in  env .subst ("$PIOFRAMEWORK" ):
26302637            # Restore original pioarduino-build.py, only used with Arduino 
26312638            from  component_manager  import  ComponentManager 
0 commit comments