Expand local_machine docs and automation for connectivity, games, and ops.
Add proxy/VPN/telegram launchd and emergency runbooks; reorganize apps docs; document JA3 CrossOver runbook and Wine troubleshooting; add GOG/HoMM game scripts, disk cleanup guides, and gitea push-via-proxy helper. Ignore temp/. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
75
scripts/games/fix-gog-auth.sh
Executable file
75
scripts/games/fix-gog-auth.sh
Executable file
@@ -0,0 +1,75 @@
|
||||
#!/usr/bin/env bash
|
||||
# GOG Galaxy в Wine: логин в CEF ок, но auth.gog.com/token таймаут → сброс на пароль.
|
||||
# Фиксы: IPv6 в Wine, сеть Poco/OpenSSL, CEF-флаги GOG.
|
||||
set -euo pipefail
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
# shellcheck source=config.sh
|
||||
source "${SCRIPT_DIR}/config.sh"
|
||||
|
||||
cmd_wine_check() {
|
||||
if [[ ! -x "${WINE64}" ]]; then
|
||||
echo "Нет WhiskyWine: bash ${SCRIPT_DIR}/install-whiskywine-manual.sh"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
cmd_wine_network_registry() {
|
||||
export WINEPREFIX="${BOTTLE_DIR}"
|
||||
echo "Wine: отключаю IPv6 DNS (частая причина зависания WinHTTP/Poco)…"
|
||||
"${WINE64}" reg add 'HKCU\Software\Wine\Network' /v DnsIPv6Enabled /t REG_DWORD /d 0 /f >/dev/null 2>&1 || true
|
||||
"${WINE64}" reg add 'HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings' \
|
||||
/v DisableIPv6 /t REG_DWORD /d 1 /f >/dev/null 2>&1 || true
|
||||
echo "Wine: ProxyEnable=0 (без системного прокси в bottle)…"
|
||||
"${WINE64}" reg add 'HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings' \
|
||||
/v ProxyEnable /t REG_DWORD /d 0 /f >/dev/null 2>&1 || true
|
||||
}
|
||||
|
||||
cmd_dll_overrides() {
|
||||
export WINEPREFIX="${BOTTLE_DIR}"
|
||||
local key='HKCU\Software\Wine\DllOverrides'
|
||||
echo "Wine: DllOverrides для OpenSSL/Poco (native)…"
|
||||
for dll in libssl-1_1 libcrypto-1_1 libssl-3 libcrypto-3; do
|
||||
"${WINE64}" reg add "${key}" /v "${dll}" /t REG_SZ /d native,builtin /f >/dev/null 2>&1 || true
|
||||
done
|
||||
}
|
||||
|
||||
cmd_clear_gog_webcache() {
|
||||
local cache="${BOTTLE_DIR}/drive_c/ProgramData/GOG.com/Galaxy/webcache"
|
||||
if [[ -d "${cache}" ]]; then
|
||||
rm -rf "${cache:?}"/*
|
||||
echo "Очищен webcache: ${cache}"
|
||||
fi
|
||||
}
|
||||
|
||||
cmd_update_plist() {
|
||||
local ps="${BOTTLE_DIR}/Program Settings/GalaxyClient.exe.plist"
|
||||
local args
|
||||
args="$(homm_gog_cef_args_line)"
|
||||
if [[ -f "${ps}" ]]; then
|
||||
/usr/bin/plutil -replace arguments -string "${args}" "${ps}" 2>/dev/null \
|
||||
|| echo " (plist вручную: ${args})"
|
||||
echo "Обновлён ${ps}"
|
||||
fi
|
||||
}
|
||||
|
||||
main() {
|
||||
cmd_wine_check
|
||||
if ! homm_gog_exe >/dev/null; then
|
||||
echo "GOG не установлен: bash ${SCRIPT_DIR}/start.sh gog-install"
|
||||
exit 1
|
||||
fi
|
||||
cmd_wine_network_registry
|
||||
cmd_dll_overrides
|
||||
cmd_clear_gog_webcache
|
||||
cmd_update_plist
|
||||
echo ""
|
||||
echo "OK. Перезапуск GOG:"
|
||||
echo " bash ${SCRIPT_DIR}/start.sh gog-restart"
|
||||
echo ""
|
||||
echo "Если снова сброс на пароль — соберите логи:"
|
||||
echo " bash ${SCRIPT_DIR}/diagnose-gog-auth.sh"
|
||||
echo ""
|
||||
echo "Проверка в логе после входа: НЕ должно быть «timeout … auth.gog.com/token»."
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user