mirror of
https://bitbucket.org/shim_/docker-teamspeak.git
synced 2018-10-04 01:51:57 +02:00
90 lines
2.7 KiB
Bash
Executable File
90 lines
2.7 KiB
Bash
Executable File
#!/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
|
|
}
|
|
|
|
function upgrade_ts3 {
|
|
INSTALLED="$(cat /opt/teamspeak3/INSTALLED_VERSION)"
|
|
if ([ "$TS3UPGRADE" == "force" ] && [ -z "$INSTALLED" ]) || ([ "$INSTALLED" != "$TS_VERSION" ]); then
|
|
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 -u /opt/teamspeak3-server_linux_$ARCH/* /opt/teamspeak3/
|
|
rm -rf /opt/teamspeak3-server_linux_$ARCH
|
|
rm -f $TMPFILE
|
|
echo "$ARCH-$TS_VERSION" -n > /opt/teamspeak3/INSTALLED_VERSION
|
|
fi
|
|
}
|
|
|
|
SERVER_DIR=/opt/teamspeak3
|
|
RUNSCRIPT=$SERVER_DIR/ts3server_minimal_runscript.sh
|
|
CONF_DIR=$SERVER_DIR
|
|
|
|
if [ ! -f "$RUNSCRIPT" ] || [ ! -z "$TS3UPGRADE" ]; then
|
|
echo Starting Initialization
|
|
if [[ ! -f "/opt/teamspeak3/INSTALLED_VERSION" || ( "$(cat /opt/teamspeak3/INSTALLED_VERSION)" != "$ARCH-$TS_VERSION" && ! -z "$UPGRADE") ]]; then
|
|
if [ ! -f "$RUNSCRIPT" ]; then
|
|
upgrade_ts3
|
|
main_config
|
|
db_config
|
|
else
|
|
upgrade_ts3
|
|
fi
|
|
fi
|
|
|
|
fi
|
|
wait_for_mysql
|
|
$RUNSCRIPT inifile=$CONF_DIR/ts3server.ini $([ ! -z "$TS3ADMIN_PASSWORD" ] && echo "serveradmin_password=$TS3ADMIN_PASSWORD")
|