From b3b5cc9b6e3200d540404aa139c943e0ba9ccae1 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 20 Jun 2026 12:17:02 +0000 Subject: [PATCH] wolf: auto-seed Steam library config on manage.sh start MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wolf creates /etc/wolf//Steam/ session dirs when the container starts, not at install time. Previously the user had to manually run fix-perms after first start to propagate libraryfolders.vdf. manage.sh start now calls _seed_steam_library() after docker compose up, which copies libraryfolders.vdf from game storage into any Wolf session dir that doesn't have it yet — so the correct library path (/mnt/games/steam) is in place before the first Moonlight connection. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs --- services/wolf.sh | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/services/wolf.sh b/services/wolf.sh index 544559c..c185aca 100644 --- a/services/wolf.sh +++ b/services/wolf.sh @@ -926,8 +926,34 @@ EOF # ── Management script ───────────────────────────────────────────────────── cat > manage.sh << 'MEOF' #!/bin/bash +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" + +_seed_steam_library() { + local game_dir + game_dir=$(grep '^GAME_STORAGE_DIR=' "$SCRIPT_DIR/.env" 2>/dev/null | cut -d= -f2-) + local vdf="$game_dir/steam/steamapps/libraryfolders.vdf" + [ -f "$vdf" ] || return 0 + local changed=0 + for wdir in /etc/wolf/[0-9]*/Steam; do + [ -d "$wdir" ] || continue + local dest="$wdir/.local/share/Steam/steamapps/libraryfolders.vdf" + if [ ! -f "$dest" ]; then + sudo mkdir -p "$(dirname "$dest")" + sudo cp "$vdf" "$dest" + sudo chown -R 1000:1000 "$wdir" + changed=1 + fi + done + [ "$changed" = 1 ] && echo "Steam library config seeded into Wolf session dir." +} + case "$1" in - start) docker compose up -d; echo "Wolf started. Pair Moonlight to this server's IP." ;; + start) + docker compose up -d + echo "Wolf started. Pair Moonlight to this server's IP." + sleep 3 + _seed_steam_library + ;; stop) docker compose down ;; restart) docker compose restart ;; logs) docker compose logs -f wolf ;;