Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- # $FreeBSD$
- #
- # PROVIDE: teamspeak
- # REQUIRE: LOGIN
- # KEYWORD: shutdown
- . /etc/rc.subr
- # system
- name="teamspeak"
- arch="freebsd_amd64"
- rcvar="${name}_enable"
- # query settings
- query_host="127.0.0.1"
- query_port="10011"
- query_user="serveradmin"
- query_pass="password"
- # directory settings
- dir_bin="/usr/local/libexec"
- dir_cfg="/usr/local/etc/${name}"
- dir_lib="/usr/local/lib/${name}/server"
- dir_log="/var/log/${name}"
- dir_sql="/var/db/${name}"
- dir_tmp="/tmp/${name}"
- # daemon settings
- pidfile="${dir_sql}/${name}_server.pid"
- procname="${dir_bin}/${name}_server"
- command="/usr/sbin/daemon"
- command_args="-fp ${pidfile} -u ${name} ${procname} dbsqlpath=${dir_sql}/sql/ inifile=${dir_cfg}/ts3server.ini licensepath=${dir_cfg}/ logpath=${dir_log}"
- extra_commands="update message"
- teamspeak_chdir="${dir_sql}"
- required_dirs="${dir_lib} ${dir_log} ${dir_sql}"
- # command settings
- update_cmd="teamspeak_update"
- message_cmd="teamspeak_message"
- load_rc_config ${name}
- : ${teamspeak_enable="NO"}
- teamspeak_update()
- {
- if [ -z "$1" ]; then
- echo "Missing server update package source; aborting."
- rm -Rf "${dir_tmp}"
- return 1
- fi
- echo "Downloading server update package."
- mkdir "${dir_tmp}"
- /usr/local/bin/wget --no-check-certificate -q -O "${dir_tmp}/server.tar.bz2" "$1"
- if [ $(wc -c < "${dir_tmp}/server.tar.bz2") -le 1000000 ]; then
- echo "Failed to download server update package; aborting."
- rm -Rf "${dir_tmp}"
- return 1
- fi
- echo "Extracting server update package."
- tar -xf "${dir_tmp}/server.tar.bz2" -C "${dir_tmp}"
- rm "${dir_tmp}/server.tar.bz2"
- if [ ! -e "${dir_tmp}/teamspeak3-server_${arch}" ]; then
- echo "Invalid server update package; aborting."
- rm -Rf "${dir_tmp}"
- return 1
- fi
- if [ -e ${pidfile} ]; then
- run_rc_command stop
- fi
- echo "Updating ts3server."
- cp "${dir_sql}/ts3server.sqlitedb" "${dir_sql}/ts3server.sqlitedb-bak" && chown -R ${name}:${name} "${dir_sql}/ts3server.sqlitedb-bak"
- cp "${dir_tmp}/teamspeak3-server_${arch}/ts3server" "${procname}"
- find "${dir_tmp}" -name \*.so* -exec cp {} "${dir_lib}" \;
- rm -R "${dir_sql}/serverquerydocs" && cp -fR "${dir_tmp}/teamspeak3-server_${arch}/serverquerydocs" "${dir_sql}/serverquerydocs" && chown -R ${name}:${name} "${dir_sql}/serverquerydocs"
- rm -R "${dir_sql}/sql" && cp -fR "${dir_tmp}/teamspeak3-server_${arch}/sql" "${dir_sql}/sql" && chown -R ${name}:${name} "${dir_sql}/sql"
- run_rc_command start
- rm -Rf "${dir_tmp}"
- }
- teamspeak_message()
- {
- (echo "login ${query_user} ${query_pass}"; echo "gm msg=[B][COLOR=red]$(echo $@ | sed 's/ /\\s/g')[/COLOR][/B]"; echo "quit") | nc ${query_host} ${query_port} > /dev/null
- }
- LD_LIBRARY_PATH=${dir_lib}:$LD_LIBRARY_PATH
- export LD_LIBRARY_PATH
- run_rc_command "$@"
Add Comment
Please, Sign In to add comment