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