forked from CastroFidel/PortWINE
PortProton_v1.0
This commit is contained in:
@ -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
|
||||
|
Reference in New Issue
Block a user