#!/bin/sh # DAYZ_GAME_ID=221100 # DAYZ_SERVER_ID=223350 # STEAM_USER="yzaddayz" # LOCAL_MODS_DIR="${HOME}/.steam/debian-installation/steamapps/workshop/content/$DAYZ_GAME_ID" # REMOTE_MAPS="/mnt/dayz/stock/maps" # alias do_sync='rsync -rvltDhu --delete --partial --progress' # msg() { # printf '[*] %s\n' "$*" # } # ==================================================================================== # update_server() { # msg "------------------ UPDATING DAYZ SERVER -------------------" # LOCAL_INSTALL_DIR="${HOME}/.steam/debian-installation/steamapps/common/DayZServer" # REMOTE_INSTALL_DIR="/mnt/dayz/stock/DayZServer" # steamcmd -tcp +login "$STEAM_USER" +app_update "$DAYZ_GAME_ID" +quit # steamcmd -tcp +login "$STEAM_USER" +app_update "$DAYZ_SERVER_ID" +quit # do_sync "$LOCAL_INSTALL_DIR"/ "$REMOTE_INSTALL_DIR" # msg "------- DONE UPDATING SERVER ---------------------" # } # args: $1=server_name # update_mods() { # MODS_FILE="$HOME/modlists/$1" # REMOTE_MODS_DIR="/mnt/dayz/mods/${1%.txt}" # mkdir -p "$REMOTE_MODS_DIR" # tempfile=/tmp/mods-to-download.txt # :> "$tempfile" # while read -r mod ; do # # skip comments, blank lines # case "$mod" in # \#*|'') # ;; # *) # mod=${mod%%^*} # printf "+workshop_download_item $DAYZ_GAME_ID %s\n" "$mod" >> "$tempfile" # mkdir -p "$LOCAL_MODS_DIR/$mod" # esac # done < "$MODS_FILE" # msg "----------- DOWNLOAD MODS -------------" # steamcmd -tcp +login "$STEAM_USER" $(cat "$tempfile" | xargs) +quit || exit 1 # msg "----------- RENAMING MODS -------------" # rm -rf "$HOME/mods_to_copy" 2>/dev/null ||: # mkdir -p "$HOME/mods_to_copy" # :> "$HOME/mods_to_copy/mods.txt" # while read -r mod ; do # # skip comments, blank lines # case "$mod" in # \#*|'') # ;; # *) # mod_id=${mod%%^*} # mod_name=${mod##*^} # do_sync "$LOCAL_MODS_DIR/$mod_id"/ "$HOME/mods_to_copy/@${mod_name}" # printf '@%s\n' "$mod_name" >> "$HOME/mods_to_copy/mods.txt" # esac # done < "$MODS_FILE" # msg "----------- SYNCING MODS -------------" # do_sync "$HOME/mods_to_copy"/ "$REMOTE_MODS_DIR" # rm "$tempfile" 2>/dev/null ||: # rm -rf "$HOME/mods_to_copy" 2>/dev/null ||: # } update_stock_maps() { msg "----------- UPDATING MAPS -------------" cherno=dayzOffline.chernarusplus namalsk=regular.namalsk takistan=Offline.TakistanPlus NAMALSK_MOD_ID=2289461232 TAKISTAN_MOD_ID=2563233742 do_sync \ "${HOME}/.steam/debian-installation/steamapps/common/DayZServer/mpmissions/$cherno"/ \ "$REMOTE_MAPS/$cherno" msg "Updating Namalsk Survival" steamcmd -tcp +login "$STEAM_USER" +workshop_download_item "$DAYZ_GAME_ID" "$NAMALSK_MOD_ID" +quit || exit 1 if [ -d "$LOCAL_MODS_DIR/$NAMALSK_MOD_ID/Extras/Regular/$namalsk" ] ; then do_sync "$LOCAL_MODS_DIR/$NAMALSK_MOD_ID/Extras/Regular/$namalsk"/ "$REMOTE_MAPS/$namalsk" || \ die "failed to copy Namalsk map files" fi msg "Updating Optimized Namalsk Server PBOs" #NAMALSK_OPTIMIZED steamcmd -tcp +login "$STEAM_USER" +workshop_download_item "$DAYZ_GAME_ID" "$NAMALSK_MOD_ID" +quit || exit 1 msg "Updating TakistanPlus" steamcmd -tcp +login "$STEAM_USER" +workshop_download_item "$DAYZ_GAME_ID" "$TAKISTAN_MOD_ID" +quit || exit 1 if [ -d "$LOCAL_MODS_DIR/$TAKISTAN_MOD_ID/Mission/$takistan" ] ; then do_sync "$LOCAL_MODS_DIR/$TAKISTAN_MOD_ID/Mission/$takistan"/ "$REMOTE_MAPS/$takistan" || \ die "failed to copy Takistan map files" fi } # main () { # update_server # update_stock_maps # for server in $(ls "$HOME/modlists" | xargs | sed 's/\.txt//g') ; do # rm -rf "$HOME/.steam/debian-installation/steamapps/workshop/downloads" # mkdir -p "$HOME/.steam/debian-installation/steamapps/workshop/downloads" # update_mods "$server" # done # } # main "$@"