forked from CastroFidel/winehelper
		
	Merge branch 'minergenon-remove-prefix'
This commit is contained in:
		
							
								
								
									
										62
									
								
								winehelper
									
									
									
									
									
								
							
							
						
						
									
										62
									
								
								winehelper
									
									
									
									
									
								
							| @@ -1216,6 +1216,66 @@ run_autoinstall () { | ||||
|     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 () { | ||||
|     local answer | ||||
| @@ -1283,6 +1343,7 @@ wh_info () { | ||||
|     installed                     список установленных программ | ||||
|     run [программа.exe]           запуск программы (отладка) | ||||
|     remove                        удалить WineHelper и все связанные данные | ||||
|     remove-prefix [имя_префикса]  удалить префикс и все связанные данные | ||||
|  | ||||
| Параметры: | ||||
|     --help                        показать эту справку и выйти | ||||
| @@ -1317,6 +1378,7 @@ case "${1,,}" in | ||||
|     installed) shift ; check_installed_programs "$1" ;; | ||||
|     run|-r) shift ; run_installed_programs "$1" ;; | ||||
|     remove|--remove) remove_winehelper ;; | ||||
|     remove-prefix) shift ; remove_prefix "$@" ;; | ||||
|     *) | ||||
|         if [[ -f "$1" ]] ; then | ||||
|             WIN_FILE_EXEC="$(readlink -f "$1")" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user