added preservation of the latest use of prefix

This commit is contained in:
Mikhail Tergoev 2025-05-23 17:27:57 +03:00
parent cd619bb9cc
commit 4310fe1e8c

View File

@ -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,21 +1014,24 @@ 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
if [[ "$WHDB_FILE" != "0" ]] ; then
print_info "Используется файл настроек: $WHDB_FILE" print_info "Используется файл настроек: $WHDB_FILE"
. "$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 else
print_warning "Файл настроек не найден. Пропускаем." print_warning "Файл настроек не найден. Пропускаем."
fi fi
fi
} }
prepair_wine () { prepair_wine () {
@ -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