From 109b27b3bad3575f4d1d195c682457b4ec773e77 Mon Sep 17 00:00:00 2001 From: Alex Smith Date: Thu, 16 Jan 2025 21:52:14 +0500 Subject: [PATCH] added saving statistics --- data_from_portwine/scripts/add_in_steam.sh | 47 +++++++++++++-------- data_from_portwine/scripts/functions_helper | 10 +++-- 2 files changed, 35 insertions(+), 22 deletions(-) diff --git a/data_from_portwine/scripts/add_in_steam.sh b/data_from_portwine/scripts/add_in_steam.sh index a0d316d..4d12f25 100755 --- a/data_from_portwine/scripts/add_in_steam.sh +++ b/data_from_portwine/scripts/add_in_steam.sh @@ -512,26 +512,37 @@ addNonSteamGame() { rungame() { export START_FROM_STEAM=1 - if [[ -n "${STEAM_COMPAT_DATA_PATH:-}" ]]; then - cd "$(dirname "${portwine_exe}")" - PORTWINE_DB_FILE="${portwine_exe}.ppdb" - if [[ -f "${PORTWINE_DB_FILE}" ]]; then - source "${PORTWINE_DB_FILE}" - fi - for path in "ProgramData" "users/Public" "users/steamuser"; do - if [[ ! -L "${WINEPREFIX}/drive_c/${path}" ]]; then - mkdir -p "${WINEPREFIX}/drive_c/users/" - rm -rf "${WINEPREFIX}/drive_c/${path}" - ln -sr "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME:-DEFAULT}/drive_c/${path}" "${WINEPREFIX}/drive_c/${path}" + if [[ -n "${portwine_exe:-}" ]]; then + if [[ -n "${STEAM_COMPAT_DATA_PATH:-}" ]]; then + cd "$(dirname "${portwine_exe}")" + PORTWINE_DB_FILE="${portwine_exe}.ppdb" + export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp" + source "${PORT_WINE_PATH}/data/user.conf" + source "${PORT_SCRIPTS_PATH}/functions_helper" + if [[ -f "${PORTWINE_DB_FILE}" ]]; then + source "${PORTWINE_DB_FILE}" + fi + for path in "ProgramData" "users/Public" "users/steamuser"; do + if [[ ! -L "${WINEPREFIX}/drive_c/${path}" ]]; then + mkdir -p "${WINEPREFIX}/drive_c/users/" + rm -rf "${WINEPREFIX}/drive_c/${path}" + ln -sr "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME:-DEFAULT}/drive_c/${path}" "${WINEPREFIX}/drive_c/${path}" + fi + done + [[ $PW_LOG != 1 ]] && debug_timer --start -s "PW_TIME_IN_GAME" + "${STEAM_COMPAT_TOOL_PATHS%%:*}/proton" "run" "${portwine_exe}" + if [[ $PW_LOG != 1 ]] && [[ -n $START_PW_TIME_IN_GAME ]] ; then + debug_timer --end -s "PW_TIME_IN_GAME" + PW_TIME_IN_GAME=$(( PW_TIME_IN_GAME / 1000 )) # в секундах + search_desktop_file fi - done - "${STEAM_COMPAT_TOOL_PATHS%%:*}/proton" "run" "${portwine_exe}" - else - export LD_PRELOAD= - if [[ "${FLATPAK_IN_USE:-0}" == 1 ]]; then - flatpak run ru.linux_gaming.PortProton "${portwine_exe}" else - "${PORT_SCRIPTS_PATH}/start.sh" "${portwine_exe}" + export LD_PRELOAD= + if [[ "${FLATPAK_IN_USE:-0}" == 1 ]]; then + flatpak run ru.linux_gaming.PortProton "${portwine_exe}" + else + "${PORT_SCRIPTS_PATH}/start.sh" "${portwine_exe}" + fi fi fi } diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 862b4b7..8bc2886 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2886,10 +2886,12 @@ edit_db_from_gui () { then for mod_db in "$@" ; do proxy_mod_db="${!mod_db}" - if [[ $proxy_mod_db =~ (${translations[Disabled]}|${translations[Disable]}) ]] ; then - proxy_mod_db=disabled - elif [[ $proxy_mod_db =~ (${translations[Enabled]}|${translations[Enable]}) ]] ; then - proxy_mod_db=enabled + if (( ${#translations[@]} > 0 )); then + if [[ $proxy_mod_db =~ (${translations[Disabled]}|${translations[Disable]}) ]] ; then + proxy_mod_db=disabled + elif [[ $proxy_mod_db =~ (${translations[Enabled]}|${translations[Enable]}) ]] ; then + proxy_mod_db=enabled + fi fi if [[ $(<"${PORTWINE_DB_FILE}") =~ export\ ${mod_db}= ]] then sed -i "s|export ${mod_db}=.*|export ${mod_db}=\"$proxy_mod_db\"|g" "${PORTWINE_DB_FILE}"