![DALL·E_2023-10-21_13.05.52_-_Illustration_in_a_soft_anime_style_showing_a_girl__inspired_by_Limor_Fried__sweeping_the_floor_of_a_library._She_has_pink_hair_and_is_dressed_in_a_tea.png](https://cdn-learn.adafruit.com/user_assets/assets/000/000/246/large1024/DALL%C2%B7E_2023-10-21_13.05.52_-_Illustration_in_a_soft_anime_style_showing_a_girl__inspired_by_Limor_Fried__sweeping_the_floor_of_a_library._She_has_pink_hair_and_is_dressed_in_a_tea.png?1697908009)
I've got hundreds of Arduino libraries that we maintain in my 'libraries' folder, and it can very quickly get difficult to maintain them. There's 4 issues I spent an inordinate amount of time on!
First issue is that whenever a library is updated, the IDE does not delete the previous version, but keeps both around...after a few years this ends in a lot of cruft.
Secondly, libraries downloaded via the IDE are placed into a folder in the format arduino_nnnnn where n is a number, so you don't really know what library is inside it, making the first issue hard to clean up
Thirdly - for Adafruit libraries, they are git clone
'd into the library folder which means I sometimes end up in a branch that I'm working on, and then submit a PR. Days later I've forgotten to change back into my main branch, losing out on any merged updates!
Finally - there's constant updates to our libraries, and the IDE does alert me when this happens - which means I need to do a git pull - but in hundreds of libraries this takes a long time to go to each folder and run the git pull command.
THUS a script! This python code does a number of clean up tasks, I only have to run it a few times a week and it will keep my arduino libraries folder nice n tidy. Thanks to ChatGPT4 Sept 25 for the assist, it made the scripting faster (note I did make some changes beyond what GPT4 wrote)