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:
ahauimix
2026-06-01 08:12:19 +03:00
parent a39ef89125
commit 1938b7c743
135 changed files with 9933 additions and 388 deletions

View File

@@ -0,0 +1,88 @@
#!/usr/bin/env bash
# Сейвы 1/2/3: файлы на диске vs видимость в игре (Steam API / login).
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
# shellcheck source=config.sh
source "${SCRIPT_DIR}/config.sh"
CONN_LOG="${STEAM_DIR}/logs/connection_log.txt"
PLAYER_LOG="${BOTTLE_DIR}/drive_c/users/${USER}/AppData/LocalLow/Unfrozen/HeroesOldenEra/Player.log"
USERS_ROOT="${BOTTLE_DIR}/drive_c/users/${USER}/AppData/LocalLow/Unfrozen/HeroesOldenEra/users"
echo "=== HoMM Olden Era — диагностика сейвов ==="
echo "Bottle: ${BOTTLE_NAME}"
echo ""
# --- файлы на диске ---
if [[ -d "${USERS_ROOT}" ]]; then
echo "Профили users/:"
ls -1 "${USERS_ROOT}" 2>/dev/null || true
sp="$(find "${USERS_ROOT}" -type d -path '*/saves/singleplayer' 2>/dev/null | head -1)"
if [[ -n "${sp}" ]]; then
echo ""
echo "singleplayer на диске: ${sp}/"
ls -lh "${sp}"/*.saveskirmish 2>/dev/null || echo " (нет *.saveskirmish)"
else
echo "singleplayer: не найден"
fi
else
echo "Нет ${USERS_ROOT} — игра ещё не создавала профиль."
fi
echo ""
# --- Steam login ---
if [[ -f "${CONN_LOG}" ]]; then
echo "Steam connection_log (хвост):"
tail -4 "${CONN_LOG}" | sed 's/^/ /'
if tail -20 "${CONN_LOG}" | grep -qE '\[Logged On'; then
echo " → Steam в bottle: Logged On (OK для сейвов)"
STEAM_OK=1
else
echo " → Steam в bottle: Logged Off (сейвы в меню не подтянутся)"
STEAM_OK=0
fi
else
echo "Нет connection_log.txt"
STEAM_OK=0
fi
echo ""
# --- Player.log ---
if [[ -f "${PLAYER_LOG}" ]]; then
if grep -q 'SteamApi_Init failed\|ConnectToGlobalUser failed' "${PLAYER_LOG}" 2>/dev/null; then
echo "Player.log: SteamApi_Init FAILED — игра без живого Steam-клиента."
echo " (файлы на диске могут быть, слоты в UI пустые)"
API_OK=0
elif grep -q 'Steam is probably not running' "${PLAYER_LOG}" 2>/dev/null; then
echo "Player.log: Steam is probably not running"
API_OK=0
else
echo "Player.log: явных ошибок Steam API в последнем запуске нет."
API_OK=1
fi
if grep -q 'FileManager.*saves' "${PLAYER_LOG}" 2>/dev/null; then
echo " FileManager видит папку saves (путь профиля на диске совпадает)."
fi
else
echo "Нет Player.log — сначала запустите игру."
API_OK=0
fi
echo ""
if [[ "${STEAM_OK:-0}" == "1" && "${API_OK:-0}" == "1" ]]; then
echo "ВЕРДИКТ: контур сейвов выглядит здоровым. В игре: Загрузить → skirmish → слоты 1/2/3."
exit 0
fi
echo "ВЕРДИКТ: игра могла открыться, но сейвы не подтянутся, пока Steam не Logged On."
echo ""
echo "Цикл:"
echo " bash ${SCRIPT_DIR}/start.sh reset"
echo " bash ${SCRIPT_DIR}/fix-homm-steam-ui.sh # один раз, если пустой UI Steam"
echo " bash ${SCRIPT_DIR}/start.sh steam-ui # login в аккаунт"
echo " bash ${SCRIPT_DIR}/start.sh play # или Play в библиотеке"
echo ""
echo "Не использовать для сейвов: start.sh game без Logged On Steam."
exit 1