summaryrefslogtreecommitdiff
path: root/net/teamspeak-server/files/teamspeak.sh
diff options
context:
space:
mode:
Diffstat (limited to 'net/teamspeak-server/files/teamspeak.sh')
-rw-r--r--net/teamspeak-server/files/teamspeak.sh119
1 files changed, 119 insertions, 0 deletions
diff --git a/net/teamspeak-server/files/teamspeak.sh b/net/teamspeak-server/files/teamspeak.sh
new file mode 100644
index 00000000000..a68d5f5d6ff
--- /dev/null
+++ b/net/teamspeak-server/files/teamspeak.sh
@@ -0,0 +1,119 @@
+#!@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