This commit is contained in:
2023-11-20 07:01:50 -06:00
parent 69ec6bd7be
commit 5ecd4c4f59
3 changed files with 101 additions and 15 deletions

View File

@@ -15,5 +15,4 @@ chmod +x update.sh
# ========================================================= # =========================================================
# for modserver # for modserver
sudo apt install -y xmlstarlet jq sudo apt install -y xmlstarlet jq cifs-utils samba-common

View File

@@ -9,16 +9,19 @@ export DAYZ_SERVER_ID=223350
export STEAM_USER="yzaddayz" export STEAM_USER="yzaddayz"
export DEBUG=false export DEBUG=false
export REMOTE_DIR="/mnt/dayz"
export REMOTE_MAPS="$REMOTE_DIR/stock/maps"
export REMOTE_MODS="$REMOTE_DIR/mods"
export REMOTE_STOCK_SERVER="$REMOTE_DIR/stock/DayZServer"
export REMOTE_STOCK_GAME="$REMOTE_DIR/stock/DayZ"
################### GLOBAL VARS ############################## ################### GLOBAL VARS ##############################
################### GLOBAL ALIASES ########################### ################### GLOBAL ALIASES ###########################
alias do_sync='rsync -rvltDhu --delete --partial --progress' alias do_sync='rsync -rvltDhu --delete --partial --progress'
################### GLOBAL ALIASES ########################### ################### GLOBAL ALIASES ###########################
################### GLOBAL FUNCTIONS ######################### ################### GLOBAL FUNCTIONS #########################
msg() { msg() {
printf '[*] %s\n' "$*" printf '[*] %s\n' "$*"
@@ -26,9 +29,45 @@ msg() {
errmsg() { errmsg() {
>&2 printf '[Error]: %s\n' "$*" >&2 printf '[Error]: %s\n' "$*"
} }
################### GLOBAL FUNCTIONS ######################### mount_dayz_network_drive() {
if ! is_network_drive_mounted ; then
mount_dayz() { if [ -e /proc/version ] ; then
read -r ver < /proc/version
case $ver in
# WSL
*icrosoft*)
msg "Detected WSL, mounting via drvfs"
sudo mount -t drvfs -o user=samba \ sudo mount -t drvfs -o user=samba \
//truenas.local.wvr.sh/dayz /mnt/dayz //truenas.local.wvr.sh/dayz /mnt/dayz
;;
*)
msg "Detected Linux, mounting via cifs"
sudo mount -t cifs //truenas.local.wvr.sh/dayz /mnt/dayz \
-o credentials=/root/sambacreds.txt \
-o uid=1000 \
-o gid=1000 \
-o iocharset=utf8 \
-o vers=3.0
esac
unset ver
# asdf
else
errmsg 'could not find /proc/version'
exit 1
fi
fi
if ! is_network_drive_mounted ; then
errmsg 'Could not mount network drive'
exit 1
fi
} }
is_network_drive_mounted() {
if [ ! -f "$REMOTE_DIR/canary" ] ; then
return 1
fi
}
################### GLOBAL FUNCTIONS #########################

View File

@@ -15,11 +15,59 @@ else
>&2 echo "Could not load: $GLOBALS_FILE" >&2 echo "Could not load: $GLOBALS_FILE"
exit 1 exit 1
fi fi
# =================================================== # ===================================================
# 02. Local script variables
# ===================================================
export LOCAL_STOCK_GAME="$HOME/DayZ"
export LOCAL_STOCK_SERVER="$HOME/DayZServer"
mkdir -p "$LOCAL_STOCK_GAME" "$LOCAL_STOCK_SERVER"
# ===================================================
# 03. Mount network drive
# ===================================================
if ! is_network_drive_mounted ; then
mount_dayz_network_drive
if ! is_network_drive_mounted ; then
errmsg "Could not mount network drive"
exit 1
fi
fi
# ===================================================
# 04. Begin functions
# ===================================================
update_server() {
msg "-------- UPDATING DAYZ SERVER -------------------"
steamcmd -tcp \
+force_install_dir "$LOCAL_STOCK_SERVER" \
+@sSteamCmdForcePlatformType windows \
+@ShutdownOnFailedCommand 1 \
+login "$STEAM_USER" \
+app_update "$DAYZ_SERVER_ID" \
+quit
is_network_drive_mounted &&
do_sync "$LOCAL_STOCK_SERVER"/ "$REMOTE_STOCK_SERVER"
msg "-------- DONE UPDATING SERVER -------------------"
# LOCAL_INSTALL_DIR="${HOME}/.steam/debian-installation/steamapps/common/DayZServer"
}
update_game() {
:
# steamcmd -tcp +login "$STEAM_USER" +app_update "$DAYZ_GAME_ID" +quit
}
main() {
update_server
# update_game
}
main "$@"
##### GARBAGE BELOW
# LOCAL_MODS_DIR="$HOME/steam_data/steamapps/workshop/content/$DAYZ_GAME_ID"
# LOCAL_SERVER_INSTALL_DIR="$HOME/steam_data/steamapps/workshop/content/$DAYZ_GAME_ID"
######### LOCAL SCRIPT VARS ###############
LOCAL_MODS_DIR="$HOME/steam_data/steamapps/workshop/content/$DAYZ_GAME_ID"
REMOTE_MAPS="/mnt/dayz/stock/maps"
REMOTE_MODS="/mnt/dayz/mods"
###########################################