From b684afe1ade2d5cf02402b582037125fd2271e16 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Tue, 27 May 2025 15:06:48 +0300 Subject: [PATCH] added arg for force remove all WH data --- winehelper | 91 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 47 insertions(+), 44 deletions(-) diff --git a/winehelper b/winehelper index 6bb5875..233956f 100755 --- a/winehelper +++ b/winehelper @@ -1271,54 +1271,57 @@ remove_prefix() { ##### REMOVE WINEHELPER ##### remove_winehelper () { local answer - - echo "======================================================" - print_warning "Вы собираетесь удалить WineHelper и все связанные с ним данные." - echo " Это удалит:" - echo " - Все настройки WineHelper" - echo " - Все приложения/программы, установленные через WineHelper" - echo " - Все ярлыки из меню и с рабочего стола созданные с помощью WineHelper" - echo "======================================================" - echo "Продолжить? (y/N)" - read -r answer - - if [[ "$answer" =~ ^[YyДд]$ ]]; then - # Второе подтверждение - echo "----------------------------------------------" - print_warning " ВЫ ТОЧНО УВЕРЕНЫ?" - echo "----------------------------------------------" + if [[ $1 =~ --force|-y ]] ; then + answer="y" + else + echo "======================================================" + print_warning "Вы собираетесь удалить WineHelper и все связанные с ним данные." + echo " Это удалит:" + echo " - Все настройки WineHelper" + echo " - Все приложения/программы, установленные через WineHelper" + echo " - Все ярлыки из меню и с рабочего стола созданные с помощью WineHelper" + echo "======================================================" echo "Продолжить? (y/N)" read -r answer - if [[ "$answer" =~ ^[YyДд]$ ]]; then - - # Удаление рабочих каталогов - try_remove_dir "$USER_WORK_PATH" - - # Удаление файлов меню - try_remove_dir "$WH_MENU_DIR" - try_remove_file "$WH_MENU_CATEGORY" - try_remove_file "$WH_MENU_CONFIG" - - # Удаление desktop-файлов - for desktop_file in "$(xdg-user-dir DESKTOP)"/*.desktop; do - if grep -q "Exec=env \"$RUN_SCRIPT\"" "$desktop_file"; then - try_remove_file "$desktop_file" - fi - done - - # Обновление кэша desktop-файлов - if check_command update-desktop-database; then - update-desktop-database "$HOME/.local/share/applications" - fi - - # Удаление символических ссылок - try_remove_file "$HOME/.winehelper" - - print_info "WineHelper и все связанные данные успешно удалены." + if [[ "$answer" =~ ^[YyДд]$ ]] ; then + # Второе подтверждение + echo "----------------------------------------------" + print_warning " ВЫ ТОЧНО УВЕРЕНЫ?" + echo "----------------------------------------------" + echo "Продолжить? (y/N)" + read -r answer else print_info "Удаление отменено." + return 1 fi + fi + + if [[ "$answer" =~ ^[YyДд]$ ]] ; then + # Удаление рабочих каталогов + try_remove_dir "$USER_WORK_PATH" + + # Удаление файлов меню + try_remove_dir "$WH_MENU_DIR" + try_remove_file "$WH_MENU_CATEGORY" + try_remove_file "$WH_MENU_CONFIG" + + # Удаление desktop-файлов + for desktop_file in "$(xdg-user-dir DESKTOP)"/*.desktop; do + if grep -q "Exec=env \"$RUN_SCRIPT\"" "$desktop_file"; then + try_remove_file "$desktop_file" + fi + done + + # Обновление кэша desktop-файлов + if check_command update-desktop-database; then + update-desktop-database "$HOME/.local/share/applications" + fi + + # Удаление символических ссылок + try_remove_file "$HOME/.winehelper" + + print_info "WineHelper и все связанные данные успешно удалены." else print_info "Удаление отменено." fi @@ -1334,7 +1337,7 @@ wh_info () { installed список установленных программ run [программа.exe] запуск программы (отладка) - remove удалить WineHelper и все связанные данные + remove-all удалить WineHelper и все связанные данные remove-prefix [имя_префикса] удалить префикс и все связанные данные Параметры: @@ -1369,7 +1372,7 @@ case "${1,,}" in install|-i) shift ; run_autoinstall "$@" ;; installed) shift ; check_installed_programs "$1" ;; run|-r) shift ; run_installed_programs "$1" ;; - remove|--remove) remove_winehelper ;; + remove-all) shift ; remove_winehelper "$@ ";; remove-prefix) shift ; remove_prefix "$@" ;; *) if [[ -f "$1" ]] ; then