#!/usr/bin/env bash # Выкладка выделенного сервера: файлы сети + project.godot, пересборка кэша классов, перезапуск службы. # tools/deploy_server.sh root@192.168.10.110 # ВАЖНО: клиент и сервер обновляются вместе (RPC несовместимы между версиями) — сначала пуш grid-world, # потом этот скрипт. Бэкап прошлой версии кладётся в /opt/backup-my-world-server-<дата>/. set -euo pipefail HOST="${1:?укажи user@host}" cd "$(dirname "$0")/.." STAMP="$(date +%Y%m%d-%H%M%S)" ssh "$HOST" "mkdir -p /opt/backup-my-world-server-$STAMP && cp -a /opt/my-world-server/project.godot /opt/my-world-server/Net /opt/my-world-server/net /opt/backup-my-world-server-$STAMP/ 2>/dev/null || true" ssh "$HOST" "mkdir -p /opt/my-world-server/net" scp -q net/net.gd net/net.gd.uid net/ghost.gd net/ghost.gd.uid net/server.tscn "$HOST:/opt/my-world-server/net/" scp -q deploy/server/project.godot "$HOST:/opt/my-world-server/project.godot" # Старая раскладка серверной папки (Net/ с большой буквы) больше не нужна ssh "$HOST" "rm -rf /opt/my-world-server/Net && cd /opt/my-world-server && ./godot --headless --import --path . >/dev/null 2>&1; systemctl restart my-world && sleep 2 && systemctl is-active my-world && journalctl -u my-world -n 3 --no-pager | cut -c1-120"