added prefix removal
This commit is contained in:
		
							
								
								
									
										62
									
								
								winehelper
									
									
									
									
									
								
							
							
						
						
									
										62
									
								
								winehelper
									
									
									
									
									
								
							| @@ -1215,6 +1215,66 @@ run_autoinstall () { | |||||||
|     echo |     echo | ||||||
| } | } | ||||||
|  |  | ||||||
|  | ##### REMOVE PREFIX ##### | ||||||
|  | remove_prefix() { | ||||||
|  |     local prefix_name="$1" | ||||||
|  |     local prefix_path="$WH_PREFIXES_DIR/$prefix_name" | ||||||
|  |  | ||||||
|  |     if [[ -z "$prefix_name" ]]; then | ||||||
|  |         print_error "Не указано имя префикса для удаления." | ||||||
|  |         echo "Использование: $SCRIPT_NAME remove-prefix [имя_префикса]" | ||||||
|  |         echo "Доступные префиксы:" | ||||||
|  |         ls -1 "$WH_PREFIXES_DIR" | ||||||
|  |         return 1 | ||||||
|  |     fi | ||||||
|  |  | ||||||
|  |     if [[ ! -d "$prefix_path" ]]; then | ||||||
|  |         print_error "Префикс "$prefix_name" не найден." | ||||||
|  |         return 1 | ||||||
|  |     fi | ||||||
|  |  | ||||||
|  |     echo "======================================================" | ||||||
|  |     print_warning "Вы собираетесь удалить префикс "$prefix_name"." | ||||||
|  |     echo "Это приведёт к:" | ||||||
|  |     echo " - Полному удалению всех данных префикса" | ||||||
|  |     echo " - Удалению всех программ, установленных в этом префиксе" | ||||||
|  |     echo " - Удалению связанных ярлыков из меню и рабочего стола" | ||||||
|  |     echo "======================================================" | ||||||
|  |     read -p "Продолжить удаление? (y/N): " answer | ||||||
|  |  | ||||||
|  |     if [[ ! "$answer" =~ ^[YyДд]$ ]]; then | ||||||
|  |         print_info "Удаление префикса отменено." | ||||||
|  |         return 0 | ||||||
|  |     fi | ||||||
|  |  | ||||||
|  |     echo "----------------------------------------------" | ||||||
|  |     print_warning " ВЫ ТОЧНО УВЕРЕНЫ?" | ||||||
|  |     echo "----------------------------------------------" | ||||||
|  |     read -p "Продолжить удаление? (y/N): " answer | ||||||
|  |  | ||||||
|  |     if [[ ! "$answer" =~ ^[YyДд]$ ]]; then | ||||||
|  |         print_info "Удаление префикса отменено." | ||||||
|  |         return 0 | ||||||
|  |     fi | ||||||
|  |  | ||||||
|  |     try_remove_dir "$prefix_path" | ||||||
|  |     if [[ $? -eq 0 ]]; then | ||||||
|  |         print_ok "Префикс "$prefix_name" успешно удален." | ||||||
|  |  | ||||||
|  |         for desktop_file in "$WH_MENU_DIR"/*.desktop; do | ||||||
|  |             if grep -q "$prefix_path" "$desktop_file"; then | ||||||
|  |                 desktop_name=$(basename "$desktop_file") | ||||||
|  |                 remove_desktop "${desktop_name%.*}" | ||||||
|  |             fi | ||||||
|  |         done | ||||||
|  |  | ||||||
|  |         return 0 | ||||||
|  |     else | ||||||
|  |         print_error "Не удалось удалить префикс "$prefix_name"." | ||||||
|  |         return 1 | ||||||
|  |     fi | ||||||
|  | } | ||||||
|  |  | ||||||
| ##### REMOVE WINEHELPER ##### | ##### REMOVE WINEHELPER ##### | ||||||
| remove_winehelper () { | remove_winehelper () { | ||||||
|     local answer |     local answer | ||||||
| @@ -1282,6 +1342,7 @@ wh_info () { | |||||||
|     installed                     список установленных программ |     installed                     список установленных программ | ||||||
|     run [программа.exe]           запуск программы (отладка) |     run [программа.exe]           запуск программы (отладка) | ||||||
|     remove                        удалить WineHelper и все связанные данные |     remove                        удалить WineHelper и все связанные данные | ||||||
|  |     remove-prefix [имя_префикса]  удалить префикс и все связанные данные | ||||||
|  |  | ||||||
| Параметры: | Параметры: | ||||||
|     --help                        показать эту справку и выйти |     --help                        показать эту справку и выйти | ||||||
| @@ -1316,6 +1377,7 @@ case "${1,,}" in | |||||||
|     installed) shift ; check_installed_programs "$1" ;; |     installed) shift ; check_installed_programs "$1" ;; | ||||||
|     run|-r) shift ; run_installed_programs "$1" ;; |     run|-r) shift ; run_installed_programs "$1" ;; | ||||||
|     remove|--remove) remove_winehelper ;; |     remove|--remove) remove_winehelper ;; | ||||||
|  |     remove-prefix) shift ; remove_prefix "$@" ;; | ||||||
|     *) |     *) | ||||||
|         if [[ -f "$1" ]] ; then |         if [[ -f "$1" ]] ; then | ||||||
|             WIN_FILE_EXEC="$(readlink -f "$1")" |             WIN_FILE_EXEC="$(readlink -f "$1")" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user