#!/bin/bash function write_config { echo "$1"'='"$2" >> $CONFIG } #value key alt function write_config_if_else { if [ ! -z "$1" ]; then write_config "$2" "$1" else if [ ! -z "$3" ]; then write_config "$2" "$3"; fi fi } function wait_for_mysql { if [ ! -z "$TS3DB_TYPE" ] && [ "$TS3DB_TYPE" == "MYSQL" ]; then PORT=3306 if [ ! -z "$TS3DB_PORT" ] ; then PORT="$TS3DB_PORT" ;fi while ! nc -q 1 $TS3DB_HOST $PORT < /dev/null; do sleep 3; done fi sleep 3 } function main_config { CONFIG="$CONF_DIR/ts3server.ini" cp /tpl/$(basename $CONFIG) $CONFIG if [ ! -z "$TS3DB_TYPE" ] && [ "$TS3DB_TYPE" == "MYSQL" ]; then write_config 'dbplugin' 'ts3db_mysql' write_config 'dbpluginparameter' "$CONF_DIR/ts3db_mysql.ini" write_config 'dbsqlpath' "sql/" write_config 'dbsqlcreatepath' "create_mysql/" fi } function db_config { CONFIG="$CONF_DIR/ts3db_mysql.ini" if [ ! -z "$TS3DB_TYPE" ] && [ "$TS3DB_TYPE" == "MYSQL" ]; then cp /tpl/$(basename $CONFIG) $CONFIG write_config_if_else $TS3DB_HOST 'localhost' 'host' write_config_if_else $TS3DB_PORT '3306' 'port' write_config_if_else $TS3DB_USER 'root' 'username' write_config_if_else $TS3DB_PASS '' 'password' write_config_if_else $TS3DB_NAME 'ts3' 'database' fi } SERVER_DIR=/opt/teamspeak3 RUNSCRIPT=$SERVER_DIR/ts3server_minimal_runscript.sh CONF_DIR=$SERVER_DIR if [ ! -f "$RUNSCRIPT" ]; then echo Starting Initialization URL=http://dl.4players.de/ts/releases/$TS_VERSION/teamspeak3-server_linux_$ARCH-$TS_VERSION.tar.bz2 TMPFILE=/tmp/server.tar.bz2 wget $URL -O $TMPFILE if [ ! -z "$CHECKSUM" ]; then ACTUAL=$(sha256sum $TMPFILE | cut -d " " -f1) if [ "$ACTUAL" != "$CHECKSUM" ]; then echo "Checksum mismatch!" echo "set CHECKSUM to \"\" to ignore or" echo "update CHECKSUM according to https://www.teamspeak.com/downloads" exit 1 fi fi tar -xjvf $TMPFILE -C /opt mv /opt/teamspeak3-server_linux_$ARCH/* /opt/teamspeak3/ rm -rf /opt/teamspeak3-server_linux_$ARCH rm -f $TMPFILE main_config db_config fi wait_for_mysql $RUNSCRIPT inifile=$CONF_DIR/ts3server.ini