extending the remove_prefix function to remove related shortcuts

This commit is contained in:
Sergey Palcheh
2025-06-22 18:58:50 +06:00
parent 20e93643fc
commit c7606312ae

View File

@ -1268,9 +1268,6 @@ remove_prefix() {
then print_error "Не указано имя префикса для удаления!"
fi
check_prefix_var
if [[ ! -d "$WINEPREFIX" ]]
then fatal "Префикса \"$PREFIX_NAME\" не существует!"
fi
if [[ ! $2 =~ --force|-y ]] ; then
echo "======================================================"
@ -1287,14 +1284,20 @@ remove_prefix() {
return 0
fi
fi
try_remove_dir "$WINEPREFIX"
if try_remove_dir "$WINEPREFIX" ; then
if [[ $? -eq 0 ]]; then
print_ok "Префикс "$PREFIX_NAME" успешно удален."
# Ищем и удаляем все ярлыки, связанные с этим префиксом
print_info "Поиск и удаление связанных ярлыков..."
for desktop_file in "$WH_MENU_DIR"/*.desktop; do
if grep -q "$WINEPREFIX" "$desktop_file"; then
desktop_name=$(basename "$desktop_file")
remove_desktop "${desktop_name%.*}"
if [[ -f "$desktop_file" ]] && grep -q "$WINEPREFIX" "$desktop_file"; then
# Извлекаем отображаемое имя (значение ключа Name=)
display_name=$(grep -m 1 -E "^Name=" "$desktop_file" | cut -d'=' -f2-)
if [[ -n "$display_name" ]]; then
remove_desktop "$display_name"
fi
fi
done