add modserver files
This commit is contained in:
89
mod-server/update.sh
Normal file
89
mod-server/update.sh
Normal file
@@ -0,0 +1,89 @@
|
||||
#!/bin/sh
|
||||
|
||||
DAYZ_GAME_ID=221100
|
||||
DAYZ_SERVER_ID=223350
|
||||
LOCAL_MODS_DIR="${HOME}/.steam/debian-installation/steamapps/workshop/content/$DAYZ_GAME_ID"
|
||||
STEAM_USER="yzaddayz"
|
||||
|
||||
alias do_sync='rsync -avrhu --delete --partial'
|
||||
|
||||
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/DayZServer"
|
||||
MODS_FILE="$HOME/mods.txt"
|
||||
|
||||
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.txt"
|
||||
REMOTE_MODS_DIR="/mnt/dayz/mods/$1"
|
||||
|
||||
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"
|
||||
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}"
|
||||
esac
|
||||
done < "$MODS_FILE"
|
||||
|
||||
msg "----------- SYNCING MODS -------------"
|
||||
do_sync "$HOME/mods_to_copy"/ "$REMOTE_MODS_DIR"
|
||||
|
||||
msg "copying mods.txt ..."
|
||||
cp -vf "$MODS_FILE" "$REMOTE_MODS_DIR/mods.txt"
|
||||
|
||||
rm "$tempfile" 2>/dev/null ||:
|
||||
rm -rf "$HOME/mods_to_copy" 2>/dev/null ||:
|
||||
}
|
||||
|
||||
main () {
|
||||
update_server
|
||||
|
||||
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 "$@"
|
||||
Reference in New Issue
Block a user