79 lines
2.1 KiB
Bash
Executable File
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 "$@"
|