This commit is contained in:
2023-11-29 07:11:56 -06:00
parent dfe20d9fed
commit 65e4aa16a0
3 changed files with 30 additions and 27 deletions

View File

@@ -39,10 +39,10 @@ alias do_sync='rsync -avhu --progress --delete --partial --links'
################### GLOBAL FUNCTIONS ######################### ################### GLOBAL FUNCTIONS #########################
msg() { msg() {
printf '\n[*] %s\n\n' "$*" printf '[MESSAGE]: %s\n' "$*"
} }
errmsg() { errmsg() {
>&2 printf '\n[Error]: %s\n\n' "$*" >&2 printf '\n[ERROR]: %s\n\n' "$*"
} }
die() { die() {
errmsg "$*" errmsg "$*"

View File

@@ -92,14 +92,14 @@ check() {
die "Remote server already locked?" die "Remote server already locked?"
fi fi
msg "Health checks passed successfully." msg "(MODSERVER): Health checks passed successfully."
} }
# =================================================== # ===================================================
# 05. Begin functions # 05. Begin functions
# =================================================== # ===================================================
update_server() { update_server() {
msg "============== UPDATING DAYZ SERVER =================" msg "(MODSERVER): STARTING UPDATING DAYZ SERVER"
steamcmd -tcp \ steamcmd -tcp \
+force_install_dir "$LOCAL_STOCK_SERVER" \ +force_install_dir "$LOCAL_STOCK_SERVER" \
+@sSteamCmdForcePlatformType windows \ +@sSteamCmdForcePlatformType windows \
@@ -110,11 +110,11 @@ update_server() {
is_network_drive_mounted && is_network_drive_mounted &&
do_sync "$LOCAL_STOCK_SERVER"/ "$REMOTE_STOCK_SERVER" do_sync "$LOCAL_STOCK_SERVER"/ "$REMOTE_STOCK_SERVER"
msg "============ DONE UPDATING SERVER =====================" msg "(MODSERVER): FINISHED UPDATING DAYZ SERVER"
} }
update_game() { update_game() {
msg "========== UPDATING DAYZ GAME ================" msg "(MODSERVER): STARTING UPDATING DAYZ GAME"
steamcmd -tcp \ steamcmd -tcp \
+force_install_dir "$LOCAL_STOCK_GAME" \ +force_install_dir "$LOCAL_STOCK_GAME" \
+@sSteamCmdForcePlatformType windows \ +@sSteamCmdForcePlatformType windows \
@@ -125,12 +125,12 @@ update_game() {
is_network_drive_mounted && is_network_drive_mounted &&
do_sync "$LOCAL_STOCK_GAME"/ "$REMOTE_STOCK_GAME" do_sync "$LOCAL_STOCK_GAME"/ "$REMOTE_STOCK_GAME"
msg "============= DONE UPDATING GAME ===================" msg "(MODSERVER): FINISHED UPDATING DAYZ GAME"
} }
# args: $1 = server_modlist.txt to update # args: $1 = server_modlist.txt to update
update_mods_for_server() { update_mods_for_server() {
msg "======= UPDATING MODS FOR MAP: $1 ========" msg "(MODSERVER): UPDATING MODS FOR MAP: $1"
mods_file="$MODLISTS/$1" mods_file="$MODLISTS/$1"
map_name=${1%.txt} map_name=${1%.txt}
@@ -182,12 +182,11 @@ update_mods_for_server() {
die "Problem downloading mods for $map_name" die "Problem downloading mods for $map_name"
fi fi
msg "------------ RENAMING MODS -------------" msg "(MODSERVER): RENAMING MODS"
mods_to_copy="$LOCAL_MODS/mods_to_copy"
rm -rf "$mods_to_copy" 2>/dev/null ||: # blank map's mods.txt
mkdir -p "$mods_to_copy" :> "$remote_map_mod_dir/mods.txt"
:> "$mods_to_copy/mods.txt"
while read -r mod ; do while read -r mod ; do
# skip comments, blank lines # skip comments, blank lines
case "$mod" in case "$mod" in
@@ -199,30 +198,27 @@ update_mods_for_server() {
if [ ! -d "$LOCAL_MODS/steamapps/workshop/content/$DAYZ_GAME_ID/$mod_id" ] ; then if [ ! -d "$LOCAL_MODS/steamapps/workshop/content/$DAYZ_GAME_ID/$mod_id" ] ; then
die "$LOCAL_MODS/steamapps/workshop/content/$DAYZ_GAME_ID/$mod_id does not exist" die "$LOCAL_MODS/steamapps/workshop/content/$DAYZ_GAME_ID/$mod_id does not exist"
fi fi
cp -raf "$LOCAL_MODS/steamapps/workshop/content/$DAYZ_GAME_ID/$mod_id" "$mods_to_copy/@${mod_name}" do_sync "$LOCAL_MODS/steamapps/workshop/content/$DAYZ_GAME_ID/$mod_id"/ "$remote_map_mod_dir/@${mod_name}"
msg "Finished: $mod_name" printf '@%s\n' "$mod_name" >> "$remote_map_mod_dir/mods.txt"
printf '@%s\n' "$mod_name" >> "$mods_to_copy/mods.txt" msg "(MODSERVER): Finished syncing: $mod_name"
esac esac
done < "$mods_file" done < "$mods_file"
msg "----------- SYNCING MODS -------------"
do_sync "$mods_to_copy"/ "$remote_map_mod_dir"
rm -f "$tempfile" 2>/dev/null ||: rm -f "$tempfile" 2>/dev/null ||:
unset tempfile mod map_name mods_file mods_to_copy mod_name mod_id remote_map_mod_dir unset tempfile mod map_name mods_file mod_name mod_id remote_map_mod_dir
msg "======= DONE UPDATING MODS FOR: $1 ========" msg "(MODSERVER): FINISHED UPDATING MODS FOR MAP: $1"
} }
update_stock_maps() { update_stock_maps() {
msg "----------- UPDATING MAPS -------------" msg "(MODSERVER): UPDATING MAPS"
msg "Copying Stock Chernarus" msg "(MODSERVER): Copying Stock Chernarus"
do_sync \ do_sync \
"$LOCAL_STOCK_SERVER/mpmissions/$CHERNARUS_MAP_NAME"/ \ "$LOCAL_STOCK_SERVER/mpmissions/$CHERNARUS_MAP_NAME"/ \
"$REMOTE_MAPS/$CHERNARUS_MAP_NAME" "$REMOTE_MAPS/$CHERNARUS_MAP_NAME"
msg "Updating Namalsk Survival" msg "(MODSERVER): Updating Namalsk Survival"
steamcmd \ steamcmd \
-tcp \ -tcp \
+force_install_dir "$LOCAL_MODS" \ +force_install_dir "$LOCAL_MODS" \
@@ -244,7 +240,7 @@ update_stock_maps() {
die "failed to copy Namalsk map files" die "failed to copy Namalsk map files"
fi fi
msg "Updating Namalsk Island" msg "(MODSERVER): Updating Namalsk Island"
steamcmd \ steamcmd \
-tcp \ -tcp \
+force_install_dir "$LOCAL_MODS" \ +force_install_dir "$LOCAL_MODS" \
@@ -262,7 +258,7 @@ update_stock_maps() {
####################TODO: # msg "Updating Optimized Namalsk Server PBOs" ####################TODO: # msg "Updating Optimized Namalsk Server PBOs"
msg "Updating TakistanPlus" msg "(MODSERVER): Updating TakistanPlus"
steamcmd \ steamcmd \
-tcp \ -tcp \
+force_install_dir "$LOCAL_MODS" \ +force_install_dir "$LOCAL_MODS" \
@@ -296,7 +292,7 @@ main() {
for server in $(ls "$MODLISTS" | xargs) ; do for server in $(ls "$MODLISTS" | xargs) ; do
if [ ! -f "$MODLISTS/$server" ] ; then if [ ! -f "$MODLISTS/$server" ] ; then
msg "Could not find modlist for: $MODLISTS/$server" msg "(MODSERVER): Could not find modlist for: $MODLISTS/$server"
continue continue
fi fi
update_mods_for_server "$server" update_mods_for_server "$server"

View File

@@ -234,8 +234,15 @@ EOF
# =================================================== # ===================================================
# 07. Main loop # 07. Main loop
# =================================================== # ===================================================
NUMBER_OF_STARTS=0
main() { main() {
while true ; do while true ; do
NUMBER_OF_STARTS=$((NUMBER_OF_STARTS + 1))
msg "Server is preparing to start..."
msg "NUMBER OF STARTS: $NUMBER_OF_STARTS"
cd "$ORIGINAL_DIR" || die "Can no longer cd to $ORIGINAL_DIR" cd "$ORIGINAL_DIR" || die "Can no longer cd to $ORIGINAL_DIR"
if [ -e ./SERVER.ENV ] ; then if [ -e ./SERVER.ENV ] ; then