forked from CastroFidel/winehelper
		
	added preservation of the latest use of prefix
This commit is contained in:
		
							
								
								
									
										38
									
								
								winehelper
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								winehelper
									
									
									
									
									
								
							| @@ -841,9 +841,9 @@ get_base_pfx () { | ||||
|     fi | ||||
| } | ||||
|  | ||||
| init_wineprefix () { | ||||
| check_prefix_var () { | ||||
|     if [[ -z "$WINEPREFIX" ]] ; then | ||||
|         print_warning "Префикс не выбран, используйте пееременную: WINEPREFIX=имя_префикса" | ||||
|         print_warning "Префикс не выбран, используйте переменную: WINEPREFIX=имя_префикса" | ||||
|         print_info "Список существующих префиксов:" | ||||
|         ls -1 "$WH_PREFIXES_DIR" | ||||
|         echo | ||||
| @@ -852,7 +852,12 @@ init_wineprefix () { | ||||
|         if echo "$WINEPREFIX" | grep -v '/' ; then | ||||
|             export WINEPREFIX="$WH_PREFIXES_DIR/$WINEPREFIX" | ||||
|         fi | ||||
|         return 0 | ||||
|     fi | ||||
| } | ||||
|  | ||||
| init_wineprefix () { | ||||
|     check_prefix_var | ||||
|  | ||||
|     if [[ "$WINEARCH" == "win32" ]] | ||||
|     then check_variables BASE_PFX "defpfx_x86_v01" | ||||
| @@ -910,6 +915,14 @@ init_wineprefix () { | ||||
|         get_and_set_reg_file --delete 'Software\Wine\X11 Driver' 'UseXRandR' | ||||
|         get_and_set_reg_file --delete 'Software\Wine\X11 Driver' 'UseXVidMode' | ||||
|     fi | ||||
|  | ||||
|     echo "# переменные последнего использования префикса:" > "$WINEPREFIX/last.conf" | ||||
|     for var in WH_WINE_USE BASE_PFX WINEARCH WH_WINDOWS_VER WINEESYNC WINEFSYNC \ | ||||
|     STAGING_SHARED_MEMORY WINE_LARGE_ADDRESS_AWARE WH_USE_SHADER_CACHE WH_USE_WINE_DXGI \ | ||||
|     WINE_CPU_TOPOLOGY USE_RENDERER DXVK_VER VKD3D_VER | ||||
|     do | ||||
|         echo "export $var=\"${!var}\"" >> "$WINEPREFIX/last.conf" | ||||
|     done | ||||
| } | ||||
|  | ||||
| ##### KILL AUTOSTART AFTER INSTALLING ##### | ||||
| @@ -992,6 +1005,7 @@ kill_wine () { | ||||
| } | ||||
|  | ||||
| init_database () { | ||||
|     WHDB_FILE="0" | ||||
|     if [[ -f "$WIN_FILE_EXEC" ]] ; then | ||||
|         WHDB="$(basename "$WIN_FILE_EXEC" .exe)" | ||||
|         if [[ -f "$WIN_FILE_EXEC".whdb ]] ; then | ||||
| @@ -1000,21 +1014,24 @@ init_database () { | ||||
|             orig_IFS="$IFS" | ||||
|             IFS=$'\n' | ||||
|             WH_FIND_DB_FILE="$(grep -ilw "#$WHDB.exe" "$WH_DB_DIR"/* )" | ||||
|             if [[ $(echo "$WH_FIND_DB_FILE" | wc -l) -gt 1 ]] ; then | ||||
|                 print_error "Найдено более одного файла настроек: $WHDB.exe" | ||||
|                 WHDB_FILE="$(echo "$WH_FIND_DB_FILE" | head -n1)" | ||||
|             else | ||||
|             if [[ $(echo "$WH_FIND_DB_FILE" | wc -l) -eq 1 ]] ; then | ||||
|                 WHDB_FILE="$WH_FIND_DB_FILE" | ||||
|             fi | ||||
|             IFS="$orig_IFS" | ||||
|         fi | ||||
|         if [[ "$WHDB_FILE" ]] ; then | ||||
|     fi | ||||
|  | ||||
|     if [[ "$WHDB_FILE" != "0" ]] ; then | ||||
|         print_info "Используется файл настроек: $WHDB_FILE" | ||||
|         . "$WHDB_FILE" | ||||
|     elif check_prefix_var && [[ -f "$WINEPREFIX/last.conf" ]] ; then | ||||
|         print_info "Найдены настройки из предыдущего использования префикса." | ||||
|         echo "$WINEPREFIX/last.conf" | ||||
|         cat "$WINEPREFIX/last.conf" | ||||
|         . "$WINEPREFIX/last.conf" | ||||
|     else | ||||
|         print_warning "Файл настроек не найден. Пропускаем." | ||||
|     fi | ||||
|     fi | ||||
| } | ||||
|  | ||||
| prepair_wine () { | ||||
| @@ -1039,7 +1056,10 @@ prepair_wine () { | ||||
|  | ||||
|     var_winedlloverride_update "winemenubuilder.exe=d" | ||||
|  | ||||
|     init_database | ||||
|     if [[ -n "$INSTALL_SCRIPT_NAME" ]] | ||||
|     then print_info "Используются настройки из скрипта установки: $INSTALL_SCRIPT_NAME" | ||||
|     else init_database | ||||
|     fi | ||||
|     init_wine_ver | ||||
|     init_wineprefix | ||||
|     use_winetricks | ||||
|   | ||||
		Reference in New Issue
	
	Block a user