diff --git a/winehelper b/winehelper index 0a112b2..5efdced 100755 --- a/winehelper +++ b/winehelper @@ -11,12 +11,24 @@ print_error () { printf "\E[31m%s Ошибка: $@ %s\e[0m\n" ;} print_warning () { printf "\E[33m%s Предупреждение: $@ %s\e[0m\n" ;} print_info () { printf "\E[36m%s Информация: \"$@\" %s\e[0m\n" ;} print_ok () { printf "\E[35m%s Успех: $@ %s\e[0m\n" ;} -print_var () { for vp in $@ ; do print_info "${vp}=${!vp}" ; done ;} +print_var () { for vp in $@ ; do echo "${vp}=${!vp}" ; done ;} fatal () { print_error "$@" ; exit 1 ;} ##### CHECK VARIABLES ##### check_variables () { [[ -z ${!1} ]] && export $1="$2" ;} +##### CHECK DEBUG ##### +if [[ "$1" == "--debug" ]] ; then + export DEBUG="full" + export LOG_FILE="$HOME/winehelper.log" + shift + print_warning "Включен режим подробного логирования работы WINE." + print_warning "Лог будет сохранен по пути: $LOG_FILE" + sleep 3 +else + check_variables DEBUG "0" +fi + ##### DEFAULT VARIABLES ##### SCRIPT_NAME="$(basename "$0")" if [[ "$(realpath "$0")" == "/usr/bin/$SCRIPT_NAME" ]] ; then @@ -53,8 +65,6 @@ check_variables WINE_DO_NOT_CREATE_DXGI_DEVICE_MANAGER "0" check_variables WINE_HEAP_DELAY_FREE "0" check_variables WINE_ALLOW_XIM "0" -check_variables DEBUG 0 - check_variables WH_WINDOWS_VER "10" # check_variables WH_USE_GSTREAMER "1" # check_variables WH_USE_D3D_EXTRAS "1" @@ -603,10 +613,9 @@ init_wine_ver () { check_variables VKBASALT_LOG_LEVEL "none" check_variables DXVK_NVAPI_LOG_LEVEL "none" - if [[ $DEBUG == 0 ]] ; then + if [[ $DEBUG == "0" ]] ; then check_variables WINEDEBUG "-all" - export WH_WDBG='2>/dev/null' - elif [[ $DEBUG == full ]] ; then + elif [[ $DEBUG == "full" ]] ; then check_variables WINEDEBUG "+loaddll,+seh" export DXVK_LOG_LEVEL="error" export VKD3D_DEBUG "error" @@ -614,10 +623,8 @@ init_wine_ver () { export VK_LOADER_DEBUG "error" export VKBASALT_LOG_LEVEL "error" export DXVK_NVAPI_LOG_LEVEL "error" - export WH_WDBG="" else check_variables WINEDEBUG "err+all" - export WH_WDBG="" fi print_info "Используется версия wine: $WH_WINE_USE" @@ -830,11 +837,16 @@ prepair_wine () { } wine_run () { - print_var WINEPREFIX WINEDLLOVERRIDES WH_WINDOWS_VER WIN_FILE_PATH="$(dirname "$WIN_FILE_EXEC")" [[ -d "$WIN_FILE_PATH" ]] && cd "$WIN_FILE_PATH" - $MANGOHUD_RUN "$WINELOADER" "$@" $LAUNCH_PARAMETERS + if [[ $DEBUG == "0" ]] ; then + $MANGOHUD_RUN "$WINELOADER" "$@" $LAUNCH_PARAMETERS + else + print_var WH_WINE_USE WINEARCH WINEPREFIX WINEDLLOVERRIDES WH_WINDOWS_VER | tee "$LOG_FILE" + $MANGOHUD_RUN "$WINELOADER" "$@" $LAUNCH_PARAMETERS 2>&1 | tee -a "$LOG_FILE" + fi + wait_wineserver } @@ -890,6 +902,7 @@ wh_info () { Параметры: --help показать эту справку и выйти --version показать информацию о пакете и его версии + --debug [команда] включить режим логирования работы WINE " }