#!/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 "$@"