conda / menuinst

Cross platform menu item installation
https://conda.github.io/menuinst/
BSD 3-Clause "New" or "Revised" License
33 stars 41 forks source link

Only delete `Menu` when empty #218

Closed marcoesters closed 4 weeks ago

marcoesters commented 1 month ago

Description

The Menu directories are currently removed even if multiple apps share the same folder. In other words, if two apps install into the same Start Menu directory, uninstalling one of these apps will remove the entire directory. This is a regression from menuinst v1.

The same behavior happens on Linux, which doesn't appear to be the intention since _remove_this_menu() is only called if there are no additional items in the Menu. The unlinking happens regardless though.

This PR ensures that the Menu directory is only removed if the directory associated with Menu are indeed empty after all MenuItems have been removed.

I also noticed that when removing a Windows Terminal Profile via conda, the message "Could not find terminal profile for {name}.", presumably because the remove operation is executed twice. I think that message isn't helpful in either case, so I removed it here (not worth a separate PR).

Checklist - did you ...