mirror of
https://github.com/Stichting-MINIX-Research-Foundation/pkgsrc-ng.git
synced 2025-09-24 04:03:34 -04:00
120 lines
3.2 KiB
Bash
120 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
|