#!/bin/bash # DayZ Mod更新脚本 # 使用方法: docker compose run --rm steamcmd updatemod set -e echo "==========================================" echo "开始更新DayZ Mod..." echo "时间: $(date)" echo "==========================================" # 检查环境变量 if [ -z "$STEAM_USERNAME" ] || [ -z "$STEAM_PASSWORD" ]; then echo "错误: 请设置 STEAM_USERNAME 和 STEAM_PASSWORD 环境变量" exit 1 fi # 切换到SteamCMD目录 cd /opt/steamcmd # 检查SteamCMD是否已安装 if [ ! -f "/opt/steamcmd/steamcmd.sh" ]; then echo "SteamCMD未安装,开始下载和安装..." wget -O /opt/steamcmd/steamcmd_linux.tar.gz ${STEAMCMD_URL} tar xvzf /opt/steamcmd/steamcmd_linux.tar.gz -C /opt/steamcmd rm /opt/steamcmd/steamcmd_linux.tar.gz chmod +x /opt/steamcmd/steamcmd.sh echo "SteamCMD安装完成!" fi # 更新Mod(如果有配置的话) if [ -n "$MOD_IDS" ]; then echo "开始更新Mod..." IFS=',' read -ra MOD_ARRAY <<< "$MOD_IDS" for mod_id in "${MOD_ARRAY[@]}"; do echo "更新Mod ID: $mod_id" ./steamcmd.sh +login $STEAM_USERNAME $STEAM_PASSWORD +workshop_download_item 221100 $mod_id +quit if [ $? -eq 0 ]; then echo "Mod $mod_id 更新完成" else echo "Mod $mod_id 更新失败" fi done else echo "未配置Mod ID,跳过Mod更新" fi echo "==========================================" echo "Mod更新完成!" echo "时间: $(date)" echo "=========================================="