PortProton_v1.0

This commit is contained in:
castro-fidel
2022-02-24 20:26:38 +03:00
parent 9f5c39ec5e
commit fb933afd27
7 changed files with 289 additions and 121 deletions

View File

@ -74,10 +74,10 @@ try_force_link_file () {
export -f try_force_link_file
check_symlink () {
CHK_SYMLINK_FILE=`file "$1"`
if [ ! -z `echo "$CHK_SYMLINK_FILE" | grep -v "broken" | grep "symbolic link to" | awk '{print $1}'` ] ; then
CHK_SYMLINK_FILE="`file "$1"`"
if [[ ! -z "`echo "$CHK_SYMLINK_FILE" | grep -v "broken" | grep "symbolic link to" | awk '{print $1}'`" ]] ; then
return 0
elif [ ! -z `echo "$CHK_SYMLINK_FILE" | grep "broken symbolic link to" | awk '{print $1}'` ] ; then
elif [[ ! -z "`echo "$CHK_SYMLINK_FILE" | grep "broken symbolic link to" | awk '{print $1}'`" ]] ; then
print_error "remove broken symlink: $CHK_SYMLINK_FILE"
rm -fr "$CHK_SYMLINK_FILE"
return 1
@ -226,37 +226,37 @@ pw_vkbasalt_check () {
}
pw_clear_pfx () {
try_remove_file "${WINEPREFIX}/system.reg"
try_remove_file "${WINEPREFIX}/user.reg"
try_remove_file "${WINEPREFIX}/userdef.reg"
try_remove_file "${WINEPREFIX}/winetricks.log"
try_remove_file "${WINEPREFIX}/.update-timestamp"
try_remove_file "${WINEPREFIX}/drive_c/.windows-serial"
try_remove_dir "${WINEPREFIX}/drive_c/windows/"
try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/Setup"
try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/Windows"
try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/WindowsTask"
try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/Package Cache"
try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Local Settings/Application Data/Microsoft"
try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Local Settings/Application Data/Temp"
try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Local Settings/Temporary Internet Files"
try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Application Data/Microsoft"
try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Application Data/wine_gecko"
try_remove_dir "${WINEPREFIX}/drive_c/users/Public/Temp"
try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Application Data/Microsoft"
try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Application Data/Temp"
try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Temporary Internet Files"
try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Application Data/Microsoft"
try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Application Data/wine_gecko"
try_remove_dir "${WINEPREFIX}/drive_c/users/steamuser/Temp"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files/Internet Explorer"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files/Windows Media Player"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files/Windows NT"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files/Common Files"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Internet Explorer"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Common Files"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Windows Media Player"
try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Windows NT"
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg"
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/user.reg"
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/userdef.reg"
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log"
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.update-timestamp"
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/.windows-serial"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/ProgramData/Setup"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/ProgramData/Windows"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/ProgramData/WindowsTask"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/ProgramData/Package Cache"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/Public/Local Settings/Application Data/Microsoft"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/Public/Local Settings/Application Data/Temp"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/Public/Local Settings/Temporary Internet Files"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/Public/Application Data/Microsoft"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/Public/Application Data/wine_gecko"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/Public/Temp"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/steamuser/Local Settings/Application Data/Microsoft"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/steamuser/Local Settings/Application Data/Temp"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/steamuser/Local Settings/Temporary Internet Files"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/steamuser/Application Data/Microsoft"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/steamuser/Application Data/wine_gecko"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/steamuser/Temp"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/Program Files/Internet Explorer"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/Program Files/Windows Media Player"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/Program Files/Windows NT"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/Program Files/Common Files"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/Program Files (x86)/Internet Explorer"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/Program Files (x86)/Common Files"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/Program Files (x86)/Windows Media Player"
try_remove_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/Program Files (x86)/Windows NT"
try_remove_dir "${PORT_WINE_TMP_PATH}/mesa_shader_cache"
rm -f "${PORT_WINE_TMP_PATH}"/*.bin
rm -f "${PORT_WINE_TMP_PATH}"/*.foz
@ -331,13 +331,17 @@ init_wine_ver () {
done
for mono_gecko_chk in "mono" "gecko" ; do
if [ ! -d "${WINEDIR}/share/wine/${mono_gecko_chk}" ] ; then
if check_symlink "${WINEDIR}/share/wine/${mono_gecko_chk}" ; then
echo "${WINEDIR}/share/wine/${mono_gecko_chk} is symlink. OK."
elif [[ -d "${WINEDIR}/share/wine/${mono_gecko_chk}" ]] ; then
try_copy_dir "${WINEDIR}/share/wine/${mono_gecko_chk}" "${PORT_WINE_TMP_PATH}"
try_remove_dir "${WINEDIR}/share/wine/${mono_gecko_chk}"
try_force_link_dir "${PORT_WINE_TMP_PATH}/${mono_gecko_chk}" "${WINEDIR}"/share/wine/
elif ! check_symlink "${WINEDIR}/share/wine/${mono_gecko_chk}" && [[ -d "${WINEDIR}/share/wine/${mono_gecko_chk}" ]] ; then
cp -fr "${WINEDIR}/share/wine/${mono_gecko_chk}" "${PORT_WINE_TMP_PATH}"
rm -fr "${WINEDIR}/share/wine/${mono_gecko_chk}"
try_force_link_dir "${PORT_WINE_TMP_PATH}/${mono_gecko_chk}" "${WINEDIR}"/share/wine/
echo "Copy ${WINEDIR}/share/wine/${mono_gecko_chk} to tmp and create symlink to ${WINEDIR}/share/wine/. OK."
else
try_remove_dir "${WINEDIR}/share/wine/${mono_gecko_chk}"
try_force_link_dir "${PORT_WINE_TMP_PATH}/${mono_gecko_chk}" "${WINEDIR}"/share/wine
echo "${WINEDIR}/share/wine/${mono_gecko_chk} is broken symlink. Repair... OK."
fi
done
fi
@ -414,8 +418,8 @@ pw_kill_autostart () {
fi
done
fi
if [[ ! -z "`ls "${WINEPREFIX}"/drive_c/ | grep -m 1 ".tmp"`" ]] ; then
rm -f "${WINEPREFIX}"/drive_c/*.tmp
if [[ ! -z "`ls "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/drive_c/ | grep -m 1 ".tmp"`" ]] ; then
rm -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/drive_c/*.tmp
fi
return 0
}
@ -433,7 +437,7 @@ stop_portwine () {
try_remove_file "${PORT_SCRIPTS_PATH}/1"
kill_portwine &&
try_remove_dir "${PW_WINELIB}/var"
find "${WINEPREFIX}/drive_c/" -maxdepth 1 -type f -name "*.tmp" -delete
find "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/" -maxdepth 1 -type f -name "*.tmp" -delete
if [ ! -z "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`" ] ; then
kill -s SIGUSR1 "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`"
fi