From b36c15db023f025cd6f9a7e2e6cc4d6365cfb279 Mon Sep 17 00:00:00 2001
From: castro-fidel <tergoevm@gmail.com>
Date: Thu, 3 Feb 2022 13:07:03 +0300
Subject: [PATCH] Scripts version 2080

---
 data_from_portwine/changelog_eng              |  5 +++
 data_from_portwine/changelog_rus              |  5 +++
 data_from_portwine/scripts/lang               |  4 +-
 .../scripts/pw_autoinstall/PW_OSU             |  4 +-
 data_from_portwine/scripts/runlib             |  2 +-
 data_from_portwine/scripts/start.sh           | 45 +++++++++++++++----
 data_from_portwine/scripts/var                |  2 +-
 data_from_portwine/scripts/zen_yad_gui        | 28 ++++++++----
 8 files changed, 72 insertions(+), 23 deletions(-)

diff --git a/data_from_portwine/changelog_eng b/data_from_portwine/changelog_eng
index dad7e92a..3dc21222 100644
--- a/data_from_portwine/changelog_eng
+++ b/data_from_portwine/changelog_eng
@@ -2,6 +2,11 @@ You can help us in the development of the project on the website: https://boosty
 -----------------------------------------
 Changelog:
 
+###Scripts version 2080###
+* added progress display of winetricks and library downloads during prefix update
+* added display of the startup process with log output on the fly when using the DEBUG mode
+* removed from DEBUG information output that does not affect the operation of PortProton (gstreamer, ntlm, kerberos)
+
 ###Scripts version 2079###
 * fixed DLSS work on some systems
 * reduced boot logo by 30%
diff --git a/data_from_portwine/changelog_rus b/data_from_portwine/changelog_rus
index 690f807d..78c3106a 100755
--- a/data_from_portwine/changelog_rus
+++ b/data_from_portwine/changelog_rus
@@ -2,6 +2,11 @@
 -----------------------------------------
 История изменений:
 
+###Scripts version 2080###
+* добавлено отображение прогресса работы winetricks и скачивания библиотек во время обновления префикса
+* добавлено отображение процесса запуска с выводом лога на лету при использовании режима DEBUG
+* убран из DEBUG вывод информации не влияющий на работу PortProton (gstreamer, ntlm, kerberos)
+
 ###Scripts version 2079###
 * исправлена возможность запуска DLSS на некоторых системах и играх
 * уменьшено загрузочное лого на 30%
diff --git a/data_from_portwine/scripts/lang b/data_from_portwine/scripts/lang
index a8052324..e3b389d7 100755
--- a/data_from_portwine/scripts/lang
+++ b/data_from_portwine/scripts/lang
@@ -46,7 +46,7 @@ then
 	export port_start7="Запустить winetricks"
 	export port_start8="DXVK"
 
-	export port_debug="Не торопитесь!\nПосле окончания работы ${portname}, нажмите ОК."
+	export port_debug="Не торопитесь! После окончания работы ${portname}, нажмите STOP."
 
 	export loc_creat_shortcut="Создать ярлык для запускаемого файла."
 	export loc_debug="Запуск c созданием .log файла в корне ${portname}"
@@ -148,7 +148,7 @@ then
 	export port_start7="Run winetricks"
 	export port_start8="DXVK"
 
-	export port_debug="Please wait!\nAfter finishing the ${portname}, click OK."
+	export port_debug="Please wait! After finishing the ${portname}, click STOP."
 	
 	export PW_WAYLAND_INFO="Attention! You are running $portname in a Wayland session, some features may not be available!\nRestarting your session in X11 is recommended!"
 
diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_OSU b/data_from_portwine/scripts/pw_autoinstall/PW_OSU
index 16b6b5c9..e95a976d 100755
--- a/data_from_portwine/scripts/pw_autoinstall/PW_OSU
+++ b/data_from_portwine/scripts/pw_autoinstall/PW_OSU
@@ -13,9 +13,9 @@ then
         mv -f  "${PORT_WINE_PATH}/data/pfx_dotnet/drive_c/Program Files (x86)/OSU/osu!install.exe" "${PORT_WINE_PATH}/data/pfx_dotnet/drive_c/Program Files (x86)/OSU/osu!.exe"
     fi
     portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/OSU/osu!.exe"
-    portwine_create_shortcut
-    pw_run "${PW_AUTOINSTALL_EXE}"
+    # pw_run "${PW_AUTOINSTALL_EXE}"
     pw_stop_progress_bar
+    portwine_create_shortcut
     kill_portwine
 fi
 stop_portwine
diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib
index 93c5c3e0..367c2e8e 100755
--- a/data_from_portwine/scripts/runlib
+++ b/data_from_portwine/scripts/runlib
@@ -474,7 +474,7 @@ start_portwine () {
             #     init_wine_ver
             # fi
             ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" \
-            "${PORT_WINE_TMP_PATH}/winetricks" -q -r -f ${PW_DLL_NEED_INSTALL} 2>&1 | tr /n /r | grep -i "" &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
+            "${PORT_WINE_TMP_PATH}/winetricks" -q -r -f ${PW_DLL_NEED_INSTALL} &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
             # if [ "${PW_WINE_VER_FROM_DB}" != "${PW_PROTON_STEAM_VER}" ] ; then
             #     export PW_SILENT_RESTART=1
             #     /usr/bin/env bash ${pw_full_command_line[*]} &
diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh
index a827e3e1..d1090813 100755
--- a/data_from_portwine/scripts/start.sh
+++ b/data_from_portwine/scripts/start.sh
@@ -178,12 +178,31 @@ portwine_start_debug () {
     export DXVK_HUD="full"
 
     portwine_launch &
-    sleep 1 && zenity --info --title "DEBUG" --text "${port_debug}" --no-wrap &> /dev/null && kill_portwine
-    sed -i '/gstreamer-1.0/d' "${PORT_WINE_PATH}/${portname}.log"
-    sed -i '/winemenubuilder.exe/d' "${PORT_WINE_PATH}/${portname}.log"
+    sleep 3
+    pw_stop_progress_bar_cover
+    unset PW_TIMER
+    while read -r line || [[ ! -z `pgrep -a yad | grep "yad_new --text-info --tail --button="STOP":0 --title="DEBUG"" | awk '{print $1}'` ]] ; do
+            sleep 0.005
+            if [[ ! -z "${line}" ]] && [[ -z "`echo "${line}" | grep -i "gstreamer"`" ]] \
+                                    && [[ -z "`echo "${line}" | grep -i "kerberos"`" ]] \
+                                    && [[ -z "`echo "${line}" | grep -i "ntlm"`" ]]
+            then
+                echo "# ${line}"
+            fi
+            if [[ "${PW_TIMER}" != 1 ]] ; then
+                sleep 3
+                PW_TIMER=1
+            fi
+    done < "${PORT_WINE_PATH}/${portname}.log" | "${pw_yad_new}" --text-info --tail --button="STOP":0 --title="DEBUG" \
+    --skip-taskbar --center --width=800 --height=400 --text "${port_debug}" &&
+    kill_portwine
+#    sleep 1 && zenity --info --title "DEBUG" --text "${port_debug}" --no-wrap &> /dev/null && kill_portwine
     sed -i '/.fx$/d' "${PORT_WINE_PATH}/${portname}.log"
+    sed -i '/GStreamer/d' "${PORT_WINE_PATH}/${portname}.log"
+    sed -i '/kerberos/d' "${PORT_WINE_PATH}/${portname}.log"
+    sed -i '/ntlm/d' "${PORT_WINE_PATH}/${portname}.log"
+    sed -i '/winemenubuilder.exe/d' "${PORT_WINE_PATH}/${portname}.log"
     sed -i '/HACK_does_openvr_work/d' "${PORT_WINE_PATH}/${portname}.log"
-    sed -i '/dlopen failed - libgamemode.so/d' "${PORT_WINE_PATH}/${portname}.log"
     sed -i '/Uploading is disabled/d' "${PORT_WINE_PATH}/${portname}.log"
     deb_text=$(cat "${PORT_WINE_PATH}/${portname}.log"  | awk '! a[$0]++') 
     echo "$deb_text" > "${PORT_WINE_PATH}/${portname}.log"
@@ -222,11 +241,19 @@ pw_winetricks () {
     start_portwine
     pw_stop_progress_bar
     echo "WINETRICKS..." > "${PORT_WINE_TMP_PATH}/update_pfx_log"
-    while [[ -f "${PORT_WINE_TMP_PATH}/update_pfx_log" ]] ; do
-        sleep 1
-        while read -r line  ; do
-            echo "# ${line}"
-        done
+    unset PW_TIMER
+    while read -r line || [[ ! -z `pgrep -a yad | grep "yad_new --text-info --tail --no-buttons --title="WINETRICKS"" | awk '{print $1}'` ]] ; do
+            sleep 0.005
+            if [[ ! -z "${line}" ]] && [[ -z "`echo "${line}" | grep -i "gstreamer"`" ]] \
+                                    && [[ -z "`echo "${line}" | grep -i "kerberos"`" ]] \
+                                    && [[ -z "`echo "${line}" | grep -i "ntlm"`" ]]
+            then
+                echo "# ${line}"
+            fi
+            if [[ "${PW_TIMER}" != 1 ]] ; then
+                sleep 3
+                PW_TIMER=1
+            fi
     done < "${PORT_WINE_TMP_PATH}/update_pfx_log" | "${pw_yad_new}" --text-info --tail --no-buttons --title="WINETRICKS" \
     --auto-close --skip-taskbar --width=$PW_GIF_SIZE_X --height=$PW_GIF_SIZE_Y &
     "${PORT_WINE_TMP_PATH}/winetricks" -q -r -f &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var
index bca146e5..4ba2d5f5 100755
--- a/data_from_portwine/scripts/var
+++ b/data_from_portwine/scripts/var
@@ -1,6 +1,6 @@
 #!/bin/env bash
 #Author: Castro-Fidel (PortWINE-Linux.ru)
-#SCRIPTS_NEXT_VERSION=2079
+#SCRIPTS_NEXT_VERSION=2080
 #PORT_NEXT_VERSION=97
 ########################################################################
 export PW_MANGOHUD=1
diff --git a/data_from_portwine/scripts/zen_yad_gui b/data_from_portwine/scripts/zen_yad_gui
index a925343c..28f055a2 100644
--- a/data_from_portwine/scripts/zen_yad_gui
+++ b/data_from_portwine/scripts/zen_yad_gui
@@ -48,12 +48,20 @@ pw_update_pfx_cover_gui () {
         PW_GIF_SIZE_X=`file "${PW_GIF_FILE}" | awk '{print $7 + 40}'`
         PW_GIF_SIZE_Y=`file "${PW_GIF_FILE}" | awk '{print $9 + 80}'`
         echo "UPDATE PREFIX..." > "${PORT_WINE_TMP_PATH}/update_pfx_log"
-        while [[ -f "${PORT_WINE_TMP_PATH}/update_pfx_log" ]] ; do
-            sleep 1
-            while read -r gui_line  ; do
-                echo "# ${gui_line}"
-            done
-        done < "${PORT_WINE_TMP_PATH}/update_pfx_log" | "${pw_yad_new}" --plug=$PW_KEY_PROGRESS_BAR  --tabnum="2" --text-info --tail &
+        unset PW_TIMER
+        while read -r line || [[ ! -z `pgrep -a yad | grep "yad_new --notebook --key="$PW_KEY_PROGRESS_BAR"" | awk '{print $1}'` ]] ; do
+                sleep 0.005
+                if [[ ! -z "${line}" ]] && [[ -z "`echo "${line}" | grep -i "gstreamer"`" ]] \
+                                        && [[ -z "`echo "${line}" | grep -i "kerberos"`" ]] \
+                                        && [[ -z "`echo "${line}" | grep -i "ntlm"`" ]]
+                then
+                    echo "# ${line}"
+                fi
+                if [[ "${PW_TIMER}" != 1 ]] ; then
+                    sleep 3
+                    PW_TIMER=1
+                fi
+        done < "${PORT_WINE_TMP_PATH}/update_pfx_log" | "${pw_yad_new}" --plug=$PW_KEY_PROGRESS_BAR --tabnum="2" --text-info --tail &
         "${pw_yad_new}" --plug=$PW_KEY_PROGRESS_BAR --tabnum="1" --picture --filename="${PW_GIF_FILE}" --image-on-top &
 
         "${pw_yad_new}" --notebook --key="$PW_KEY_PROGRESS_BAR" --tab=LOGO --tab=TERMINAL --no-buttons --undecorated \
@@ -77,8 +85,7 @@ pw_start_progress_bar_block () {
 }
 
 pw_stop_progress_bar () {
-    for PW_KILL_YAD_PID in "$PW_YAD_PID_PROGRESS_BAR_BLOCK" "$PW_YAD_PID_PROGRESS_BAR_CS" "$PW_YAD_PID_PFX_COVER_UI" \
-    "$PW_YAD_PID_PROGRESS_BAR_COVER" "${PW_YAD_PID_PROGRESS_BAR_COVER}"
+    for PW_KILL_YAD_PID in "$PW_YAD_PID_PROGRESS_BAR_BLOCK" "$PW_YAD_PID_PROGRESS_BAR_CS" "$PW_YAD_PID_PFX_COVER_UI" "$PW_YAD_PID_PROGRESS_BAR_COVER"
     do
         kill -s SIGUSR1 "$PW_KILL_YAD_PID" > /dev/null 2>&1
     done
@@ -86,6 +93,11 @@ pw_stop_progress_bar () {
 }
 export -f pw_stop_progress_bar
 
+pw_stop_progress_bar_cover () {
+    kill -s KILL "$PW_YAD_PID_PROGRESS_BAR_COVER" > /dev/null 2>&1
+    return 0
+}
+
 open_changelog () {
     "${pw_yad}" --title="Changelog" --borders=10 --no-buttons --text-align=center \
     --text-info --show-uri --wrap --center --width=1200 --height=550 --uri-color=red \