Files
dayz-servers/version-2.0/start.sh
2022-12-05 14:20:06 -06:00

79 lines
2.1 KiB
Bash
Executable File

#!/bin/sh -e
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
# General Settings
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
export DAYZ_FILES=/mnt/dayz
export STOCK_SERVER_DATA="$DAYZ_FILES/stock/DayZServer"
export SERVERS="$HOME/servers"
export CACHE="$HOME/cache"
export MOD_CACHE="$CACHE/mods"
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
# SERVER SPECIFIC SETTINGS
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
export SERVER_NAME='ZyaD Chernaurus'
export SERVER_HOME="$SERVERS/$SERVER_NAME"
export MAP_FOLDER_NAME='chernaurus'
export SERVER_PORT=2302
export SERVER_CPU=8
export SERVER_CONFIG_FILE="$SERVER_HOME/serverDZ.cfg"
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
# Helper functions
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
alias do_sync='rsync -arvhu --progress --delete --partial'
alias do_secure_sync='rsync -arcvhu --progress --delete --partial'
msg() {
>&2 printf '[*] %s\n' "$*"
}
die() {
msg "$*"
exit 1
}
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
# Checks
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
check() {
mkdir -p "$DAYZ_FILES"
if ! mount | grep -i "$DAYZ_FILES" >/dev/null ; then
msg "mount -t drvfs XXXXXXX $DAYZ_FILES"
die "$DAYZ_FILES is not mounted!"
fi
}
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
# Environment Setup
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
init() {
mkdir -p "$SERVER_HOME" "$MOD_CACHE/$MAP_FOLDER_NAME"
}
setup_environment() {
msg "Copying stock server data."
do_sync "$STOCK_SERVER_DATA"/ "$SERVER_HOME" || die "Failed to sync $STOCK_SERVER_DATA to $SERVER_HOME"
}
copy_mods() {
msg "Coyping mod files"
do_sync "$DAYZ_FILES/mods/$MAP_FOLDER_NAME"/ "$MOD_CACHE/$MAP_FOLDER_NAME"
}
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
# Main
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
main() {
init
cd "$SERVER_HOME" || die "Could not cd to '$SERVER_HOME'"
check
msg "Setting up environment."
setup_environment
copy_mods
}
main "$@"