pkgsrc/net/teamspeak-server/files/teamspeak.sh
abs 452285d8ab Import teamspeak-server-2.0.23.15 into pkgsrc:
TeamSpeak is a quality, scalable application which enables people
to speak with one another over the Internet. TeamSpeak consists of
both client and server software. The server acts as a host to
multiple client connections, capable of handling literally thousands
of simultaneous users. This results in an Internet based teleconferencing
solution that works in a variety of applications such as team mates
speaking with one another while playing their favorite online game,
small businesses cutting costs on long distance charges, or for
personal communication with friends and family.

This package contains the TeamSpeak server for Linux/i386
2007-04-30 15:33:27 +00:00

119 lines
3.2 KiB
Bash

#!@RCD_SCRIPTS_SHELL@
#
# $NetBSD: teamspeak.sh,v 1.1.1.1 2007/04/30 15:33:27 abs Exp $
#
# PROVIDE: teamspeak
# REQUIRE: DAEMON
# KEYWORD: shutdown
#
# You will need to set the following in /etc/rc.conf to start Teamspeak:
#
# teamspeak=YES
if [ -f /etc/rc.subr ]
then
. /etc/rc.subr
fi
name="teamspeak"
rcvar=$name
teamspeak_user="@TSUSER@"
eval teamspeak_home="~$teamspeak_user"
extra_commands="passwords status"
start_cmd="teamspeak_doit start"
status_cmd="teamspeak_doit status"
stop_cmd="teamspeak_doit stop"
passwords_cmd="teamspeak_doit passwords"
pidfile="$teamspeak_home/tsserver2.pid"
logfile=$teamspeak_home/server.log
SHARE=@PREFIX@/share/teamspeak-server
SERVER=@PREFIX@/lib/teamspeak-server/teamspeak-server
SERVER_ARGS="-ini=$teamspeak_home/server.ini -sql=$SHARE/sqlite_sql/ -httpdocs=$SHARE/httpdocs/ -tcpquerydocs=$SHARE/tcpquerydocs/ -db=$teamspeak_home/server.dbs -log=$logfile -pid=$pidfile -badnames=$teamspeak_home/badnames.txt"
teamspeak_doit()
{
case $1 in
start)
if [ ! -d "$teamspeak_home" -o ! -w "$teamspeak_home" ] ; then
echo "Unable to write to $teamspeak_home"
exit 1
fi
if [ -e $pidfile ]; then
echo "$pidfile already exists...server already started ?";
echo "If you are sure the server is not running, delete $pidfile"
exit 1
else
echo "starting the teamspeak2 server"
doit_command="$SERVER $SERVER_ARGS"
doit="@SU@ -m $teamspeak_user -c '${doit_command}'"
eval $doit
fi
;;
stop)
if [ -e $pidfile ]; then
echo -n "stopping the teamspeak2 server"
if ( kill -TERM `cat $pidfile` ); then
for c in $(seq 1 300); do
if [ -e $pidfile ]; then
echo -n "."
sleep 1
fi
done
fi
if [ -e $pidfile ]; then
echo "server does not shutdown cleanly - killing"
kill -KILL `cat $pidfile`
rm $pidfile
sleep 5
else
echo "done"
fi
else
echo "$pidfile is missing, no started server ?"
exit 7
fi
;;
status)
if [ -e $pidfile ]; then
pid=`cat $pidfile`
if kill -0 "$pid" ; then
echo "the server seems to be running: pid $pid"
exit 0
else
echo "the server seems to be stopped: pid $pid"
exit 3
fi
else
echo "the server seems to be stopped"
exit 3
fi
;;
passwords)
if [ -e $logfile ]; then
date=$(cat $logfile | grep "admin account info: username: admin" | tail -n 1 | sed "s/^\([0-9]\+-[0-9]\+-[0-9]\+ [0-9]\+:[0-9]\+:[0-9]\+\).*$/\1/")
spass=$(cat $logfile | grep "superadmin account info: username: superadmin" | tail -n 1 | sed "s/^.*username: superadmin password: \([a-z0-9]\+\).*$/\1/")
pass=$(cat $logfile | grep "admin account info: username: admin" | tail -n 1 | sed "s/^.*username: admin password: \([a-z0-9]\+\).*$/\1/")
echo "Following passwords were generated on $date"
echo "superadmin = \"$spass\""
echo "admin = \"$pass\""
else
echo "$logfile not found, maybe you did not start the server yet ?"
exit 1
fi
;;
esac
}
if [ -f /etc/rc.subr -a -f /etc/rc.conf -a -d /etc/rc.d -a -f /etc/rc.d/DAEMON ]
then
load_rc_config $name
run_rc_command "$1"
else
teamspeak_doit "$1"
fi
# restart)
# $0 stop && $0 start || exit 1