updatemod.sh 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #!/bin/bash
  2. # DayZ Mod更新脚本
  3. # 使用方法: docker compose run --rm steamcmd updatemod
  4. set -e
  5. echo "=========================================="
  6. echo "开始更新DayZ Mod..."
  7. echo "时间: $(date)"
  8. echo "=========================================="
  9. # 检查环境变量
  10. if [ -z "$STEAM_USERNAME" ] || [ -z "$STEAM_PASSWORD" ]; then
  11. echo "错误: 请设置 STEAM_USERNAME 和 STEAM_PASSWORD 环境变量"
  12. exit 1
  13. fi
  14. # 切换到SteamCMD目录
  15. cd /opt/steamcmd
  16. # 检查SteamCMD是否已安装
  17. if [ ! -f "/opt/steamcmd/steamcmd.sh" ]; then
  18. echo "SteamCMD未安装,开始下载和安装..."
  19. wget -O /opt/steamcmd/steamcmd_linux.tar.gz ${STEAMCMD_URL}
  20. tar xvzf /opt/steamcmd/steamcmd_linux.tar.gz -C /opt/steamcmd
  21. rm /opt/steamcmd/steamcmd_linux.tar.gz
  22. chmod +x /opt/steamcmd/steamcmd.sh
  23. echo "SteamCMD安装完成!"
  24. fi
  25. # 更新Mod(如果有配置的话)
  26. if [ -n "$MOD_IDS" ]; then
  27. echo "开始更新Mod..."
  28. IFS=',' read -ra MOD_ARRAY <<< "$MOD_IDS"
  29. for mod_id in "${MOD_ARRAY[@]}"; do
  30. echo "更新Mod ID: $mod_id"
  31. ./steamcmd.sh +login $STEAM_USERNAME $STEAM_PASSWORD +workshop_download_item 221100 $mod_id +quit
  32. if [ $? -eq 0 ]; then
  33. echo "Mod $mod_id 更新完成"
  34. else
  35. echo "Mod $mod_id 更新失败"
  36. fi
  37. done
  38. else
  39. echo "未配置Mod ID,跳过Mod更新"
  40. fi
  41. echo "=========================================="
  42. echo "Mod更新完成!"
  43. echo "时间: $(date)"
  44. echo "=========================================="