fisrt
This commit is contained in:
@@ -29,6 +29,10 @@ msg() {
|
|||||||
errmsg() {
|
errmsg() {
|
||||||
>&2 printf '[Error]: %s\n' "$*"
|
>&2 printf '[Error]: %s\n' "$*"
|
||||||
}
|
}
|
||||||
|
die() {
|
||||||
|
errmsg "$*"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
mount_dayz_network_drive() {
|
mount_dayz_network_drive() {
|
||||||
if ! is_network_drive_mounted ; then
|
if ! is_network_drive_mounted ; then
|
||||||
sudo mkdir -p /mnt/dayz
|
sudo mkdir -p /mnt/dayz
|
||||||
|
|||||||
9
modserver/modlists/chernarus.txt
Normal file
9
modserver/modlists/chernarus.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# ==================================================================
|
||||||
|
# Generic / All Servers
|
||||||
|
# ==================================================================
|
||||||
|
|
||||||
|
# Dabs Framework
|
||||||
|
# https://steamcommunity.com/sharedfiles/filedetails/?id=2545327648
|
||||||
|
2545327648^dabsframework
|
||||||
|
|
||||||
|
|
||||||
@@ -10,28 +10,28 @@
|
|||||||
# alias do_sync='rsync -rvltDhu --delete --partial --progress'
|
# alias do_sync='rsync -rvltDhu --delete --partial --progress'
|
||||||
|
|
||||||
# msg() {
|
# msg() {
|
||||||
# printf '[*] %s\n' "$*"
|
# printf '[*] %s\n' "$*"
|
||||||
# }
|
# }
|
||||||
|
|
||||||
# ====================================================================================
|
# ====================================================================================
|
||||||
|
|
||||||
update_server() {
|
# update_server() {
|
||||||
msg "------------------ UPDATING DAYZ SERVER -------------------"
|
# msg "------------------ UPDATING DAYZ SERVER -------------------"
|
||||||
|
|
||||||
LOCAL_INSTALL_DIR="${HOME}/.steam/debian-installation/steamapps/common/DayZServer"
|
# LOCAL_INSTALL_DIR="${HOME}/.steam/debian-installation/steamapps/common/DayZServer"
|
||||||
REMOTE_INSTALL_DIR="/mnt/dayz/stock/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_GAME_ID" +quit
|
||||||
steamcmd -tcp +login "$STEAM_USER" +app_update "$DAYZ_SERVER_ID" +quit
|
# steamcmd -tcp +login "$STEAM_USER" +app_update "$DAYZ_SERVER_ID" +quit
|
||||||
|
|
||||||
do_sync "$LOCAL_INSTALL_DIR"/ "$REMOTE_INSTALL_DIR"
|
# do_sync "$LOCAL_INSTALL_DIR"/ "$REMOTE_INSTALL_DIR"
|
||||||
msg "------- DONE UPDATING SERVER ---------------------"
|
# msg "------- DONE UPDATING SERVER ---------------------"
|
||||||
}
|
# }
|
||||||
|
|
||||||
# args: $1=server_name
|
# args: $1=server_name
|
||||||
update_mods() {
|
update_mods() {
|
||||||
MODS_FILE="$HOME/modlists/$1.txt"
|
MODS_FILE="$HOME/modlists/$1"
|
||||||
REMOTE_MODS_DIR="/mnt/dayz/mods/$1"
|
REMOTE_MODS_DIR="/mnt/dayz/mods/${1%.txt}"
|
||||||
mkdir -p "$REMOTE_MODS_DIR"
|
mkdir -p "$REMOTE_MODS_DIR"
|
||||||
|
|
||||||
tempfile=/tmp/mods-to-download.txt
|
tempfile=/tmp/mods-to-download.txt
|
||||||
@@ -51,7 +51,6 @@ update_mods() {
|
|||||||
|
|
||||||
msg "----------- DOWNLOAD MODS -------------"
|
msg "----------- DOWNLOAD MODS -------------"
|
||||||
steamcmd -tcp +login "$STEAM_USER" $(cat "$tempfile" | xargs) +quit || exit 1
|
steamcmd -tcp +login "$STEAM_USER" $(cat "$tempfile" | xargs) +quit || exit 1
|
||||||
|
|
||||||
msg "----------- RENAMING MODS -------------"
|
msg "----------- RENAMING MODS -------------"
|
||||||
|
|
||||||
rm -rf "$HOME/mods_to_copy" 2>/dev/null ||:
|
rm -rf "$HOME/mods_to_copy" 2>/dev/null ||:
|
||||||
@@ -107,20 +106,17 @@ update_stock_maps() {
|
|||||||
do_sync "$LOCAL_MODS_DIR/$TAKISTAN_MOD_ID/Mission/$takistan"/ "$REMOTE_MAPS/$takistan" || \
|
do_sync "$LOCAL_MODS_DIR/$TAKISTAN_MOD_ID/Mission/$takistan"/ "$REMOTE_MAPS/$takistan" || \
|
||||||
die "failed to copy Takistan map files"
|
die "failed to copy Takistan map files"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
msg "NOTE: deer isle doesn't get automatic updates... Skipping"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
main () {
|
# main () {
|
||||||
update_server
|
# update_server
|
||||||
update_stock_maps
|
# update_stock_maps
|
||||||
|
|
||||||
for server in $(ls "$HOME/modlists" | xargs | sed 's/\.txt//g') ; do
|
# for server in $(ls "$HOME/modlists" | xargs | sed 's/\.txt//g') ; do
|
||||||
rm -rf "$HOME/.steam/debian-installation/steamapps/workshop/downloads"
|
# rm -rf "$HOME/.steam/debian-installation/steamapps/workshop/downloads"
|
||||||
mkdir -p "$HOME/.steam/debian-installation/steamapps/workshop/downloads"
|
# mkdir -p "$HOME/.steam/debian-installation/steamapps/workshop/downloads"
|
||||||
update_mods "$server"
|
# update_mods "$server"
|
||||||
done
|
# done
|
||||||
}
|
# }
|
||||||
|
|
||||||
main "$@"
|
# main "$@"
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# shellcheck disable=1090,2034
|
# shellcheck disable=1090,2034,2011
|
||||||
|
# ---------------------------------------------------
|
||||||
|
|
||||||
# ===================================================
|
# ===================================================
|
||||||
# 01. Attempt to load global DayZ values
|
# 01. Attempt to load global DayZ values
|
||||||
@@ -12,78 +13,133 @@ if [ -e "$GLOBALS_FILE" ] ; then
|
|||||||
chmod +x "$GLOBALS_FILE"
|
chmod +x "$GLOBALS_FILE"
|
||||||
. "$GLOBALS_FILE"
|
. "$GLOBALS_FILE"
|
||||||
else
|
else
|
||||||
>&2 echo "Could not load: $GLOBALS_FILE"
|
die "Could not load: $GLOBALS_FILE"
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ===================================================
|
# ===================================================
|
||||||
# 02. Local script variables and checks
|
# 02. Local script variables
|
||||||
# ===================================================
|
# ===================================================
|
||||||
export STEAMCMD_USER=steam
|
export STEAMCMD_USER=steam
|
||||||
export LOCAL_STOCK_GAME="$HOME/stock/DayZ"
|
export MODLISTS="$PWD/modlists"
|
||||||
export LOCAL_STOCK_SERVER="$HOME/stock/DayZServer"
|
|
||||||
mkdir -p "$LOCAL_STOCK_GAME" "$LOCAL_STOCK_SERVER"
|
|
||||||
|
|
||||||
if [ "$USER" != "$STEAMCMD_USER" ] ; then
|
export LOCAL_STOCK="$HOME/stock/DayZ"
|
||||||
errmsg "Current user: '$USER' does not match '$STEAMCMD_USER'"
|
export LOCAL_STOCK_GAME="$LOCAL_STOCK/DayZ"
|
||||||
exit 1
|
export LOCAL_STOCK_SERVER="$LOCAL_STOCK/DayZServer"
|
||||||
fi
|
|
||||||
|
|
||||||
# ===================================================
|
# ===================================================
|
||||||
# 03. Mount network drive
|
# 03. Mount network drive
|
||||||
# ===================================================
|
# ===================================================
|
||||||
if ! is_network_drive_mounted ; then
|
if ! is_network_drive_mounted ; then
|
||||||
mount_dayz_network_drive
|
mount_dayz_network_drive
|
||||||
|
|
||||||
if ! is_network_drive_mounted ; then
|
if ! is_network_drive_mounted ; then
|
||||||
errmsg "Could not mount network drive"
|
die "Could not mount network drive"
|
||||||
exit 1
|
fi
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ===================================================
|
# ===================================================
|
||||||
# 04. Begin functions
|
# 04. Checks
|
||||||
|
# ===================================================
|
||||||
|
mkdir -p "$LOCAL_STOCK_GAME" "$LOCAL_STOCK_SERVER"
|
||||||
|
|
||||||
|
if [ "$USER" != "$STEAMCMD_USER" ] ; then
|
||||||
|
die "Current user: '$USER' does not match '$STEAMCMD_USER'"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "$MODLISTS" ] ; then
|
||||||
|
die "Could not find modlists at: $MODLISTS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "$REMOTE_MODS" ] ; then
|
||||||
|
die "Could not find remote mods at: $REMOTE_MODS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "$REMOTE_MAPS" ] ; then
|
||||||
|
die "Could not find remote maps at: $REMOTE_MAPS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ===================================================
|
||||||
|
# 05. Begin functions
|
||||||
# ===================================================
|
# ===================================================
|
||||||
update_server() {
|
update_server() {
|
||||||
msg "-------- UPDATING DAYZ SERVER -------------------"
|
msg "-------- UPDATING DAYZ SERVER -------------------"
|
||||||
steamcmd -tcp \
|
steamcmd -tcp \
|
||||||
+force_install_dir "$LOCAL_STOCK_SERVER" \
|
+force_install_dir "$LOCAL_STOCK_SERVER" \
|
||||||
+@sSteamCmdForcePlatformType windows \
|
+@sSteamCmdForcePlatformType windows \
|
||||||
+@ShutdownOnFailedCommand 1 \
|
+@ShutdownOnFailedCommand 1 \
|
||||||
+login "$STEAM_USER" \
|
+login "$STEAM_USER" \
|
||||||
+app_update "$DAYZ_SERVER_ID" \
|
+app_update "$DAYZ_SERVER_ID" \
|
||||||
+quit
|
+quit
|
||||||
|
|
||||||
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 "-------- DONE UPDATING SERVER -------------------"
|
||||||
# LOCAL_INSTALL_DIR="${HOME}/.steam/debian-installation/steamapps/common/DayZServer"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
update_game() {
|
update_game() {
|
||||||
msg "-------- UPDATING DAYZ GAME -------------------"
|
msg "-------- UPDATING DAYZ GAME -------------------"
|
||||||
steamcmd -tcp \
|
steamcmd -tcp \
|
||||||
+force_install_dir "$LOCAL_STOCK_GAME" \
|
+force_install_dir "$LOCAL_STOCK_GAME" \
|
||||||
+@sSteamCmdForcePlatformType windows \
|
+@sSteamCmdForcePlatformType windows \
|
||||||
+@ShutdownOnFailedCommand 1 \
|
+@ShutdownOnFailedCommand 1 \
|
||||||
+login "$STEAM_USER" \
|
+login "$STEAM_USER" \
|
||||||
+app_update "$DAYZ_GAME_ID" \
|
+app_update "$DAYZ_GAME_ID" \
|
||||||
+quit
|
+quit
|
||||||
|
|
||||||
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 "-------- DONE UPDATING GAME -------------------"
|
||||||
|
}
|
||||||
|
|
||||||
|
# args: $1 = server_modlist.txt to update
|
||||||
|
update_mods_for_server() {
|
||||||
|
MODS_FILE="$MODLISTS/$1"
|
||||||
|
REMOTE_MODS_DIR="$REMOTE_MODS_DIR/${1%.txt}"
|
||||||
|
mkdir -p "$REMOTE_MODS_DIR/${1%.txt}"
|
||||||
|
|
||||||
|
# Create temporary file to list all the mod_id's we are
|
||||||
|
# going to download. This speeds up steamcmd and avoids rate limits.
|
||||||
|
tempfile=/tmp/mods-to-download.txt
|
||||||
|
:> "$tempfile"
|
||||||
|
|
||||||
|
# load the server_modlist.txt, copying the mod id's we need to update
|
||||||
|
# to the temp file, while skipping comments and blank lines
|
||||||
|
#
|
||||||
|
# format should be: "mod_id^nickname"
|
||||||
|
#
|
||||||
|
# # Dabs Framework
|
||||||
|
# # https://steamcommunity.com/sharedfiles/filedetails/?id=2545327648
|
||||||
|
# 2545327648^dabsframework
|
||||||
|
#
|
||||||
|
while read -r mod ; do
|
||||||
|
case "$mod" in
|
||||||
|
\#*|'')
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
mod=${mod%%^*}
|
||||||
|
if [ -z "$mod" ] ; then
|
||||||
|
die "mod for $server appears to be empty - syntax error"
|
||||||
|
fi
|
||||||
|
printf "+workshop_download_item $DAYZ_GAME_ID %s\n" "$mod" >> "$tempfile"
|
||||||
|
mkdir -p "$LOCAL_MODS_DIR/$mod"
|
||||||
|
esac
|
||||||
|
done < "$MODS_FILE"
|
||||||
|
|
||||||
|
rm "$tempfile" 2>/dev/null ||:
|
||||||
|
unset tempfile mod
|
||||||
}
|
}
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
update_server
|
update_server
|
||||||
update_game
|
update_game
|
||||||
|
|
||||||
|
for server in $(ls "$MODLISTS" | xargs) ; do
|
||||||
|
[ -f "$server" ] || continue
|
||||||
|
update_mods_for_server "$server"
|
||||||
|
unset server
|
||||||
|
# rm -rf "$HOME/.steam/debian-installation/steamapps/workshop/downloads"
|
||||||
|
# mkdir -p "$HOME/.steam/debian-installation/steamapps/workshop/downloads"
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
main "$@"
|
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"
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user