Parcourir la source

removed Hidden Source as not going to be fixed

Daniel Gibbs il y a 11 ans
Parent
commit
e7eb4e0af1
1 fichiers modifiés avec 0 ajouts et 721 suppressions
  1. 0 721
      TheHiddenSource/thsserver

+ 0 - 721
TheHiddenSource/thsserver

@@ -1,721 +0,0 @@
-#!/bin/bash
-# Hidden: Source
-# Server Management Script
-# Author: Daniel Gibbs
-# Website: http://danielgibbs.co.uk
-# Version: 221113
-# CURRENTLY BROKEN
-
-#### Variables ####
-
-# Notification Email
-# (on|off)
-emailnotification="off"
-email="email@example.com"
-
-# Start Variables
-defaultmap="hdn_docks"
-port="27015"
-sourcetvport="27020"
-clientport="27005"
-maxplayers="16"
-parms="-game hidden +map ${defaultmap} -port ${port} +tv_port ${sourcetvport} +clientport ${clientport} -maxplayers ${maxplayers}"
-
-#### Advanced Variables ####
-
-# Server Details
-servicename="ths-server"
-gamename="The Hidden: Source"
-engine="source"
-
-# Directorys
-rootdir="$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd )"
-selfname="$(basename $0)"
-filesdir="${rootdir}/serverfiles"
-servercfg="${filesdir}/hidden/cfg/${servicename}.cfg"
-backupdir="backups"
-
-# Server Details
-servername=$(grep -s hostname ${servercfg} | sed 's/hostname //g'|sed 's/"//g')
-rcon=$(grep -s rcon_password ${servercfg} | sed 's/rcon_password //g'|sed 's/"//g')
-
-# Logging
-logdays="7"
-gamelogdir="${filesdir}/hidden/logs"
-scriptlogdir="${rootdir}/log/script"
-consolelogdir="${rootdir}/log/console"
-
-scriptlog="${scriptlogdir}/${servicename}-script.log"
-consolelog="${consolelogdir}/${servicename}-console.log"
-emaillog="${scriptlogdir}/${servicename}-email.log"
-
-scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log"
-consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-%S').log"
-
-##### Script #####
-# Do not edit
-# unless you know
-# what you are doing
-
-fn_rootcheck(){
-if [ `whoami` = "root" ];then
-	echo -e "[\e[0;31m FAIL \e[0;39m] Script will not run as root!"
-	exit
-fi
-}
-
-fn_syscheck(){
-if [ ! -e ${filesdir} ];then
-	echo -e "[\e[0;31m FAIL \e[0;39m] Cannot access ${filesdir}: No such directory"
-	exit
-fi
-}
-
-fn_runcheck(){
-tmuxwc=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -v failed|grep -E "^${servicename}:"|wc -l)
-if [ ${tmuxwc} -eq 1 ];then
-	fn_serverquery
-	echo -en "\r[\e[0;36m INFO \e[0;39m] ${servicename}: ${servername} is already running"
-	echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: ${servername} is already running" >> ${scriptlog}
-	sleep 0.5
-	echo -en "\n"
-	exit
-fi
-}
-
-fn_logmanager(){
-if [ ! -e ${consolelog} ];then
-	touch ${consolelog}
-fi
-# log manager will active if finds logs older than ${logdays}
-if [ `find ${scriptlogdir}/* -mtime +${logdays} |wc -l` -ne "0" ];then
-	echo -e "[\e[0;32m  OK  \e[0;39m] Starting log cleaner"
-	echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Starting log cleaner" >> ${scriptlog}
-	echo -e "[\e[0;36m INFO \e[0;39m] Removing logs older than ${logdays} days"
-	echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Removing logs older than ${logdays} days" >> ${scriptlog}
-	find ${scriptlogdir}/* -mtime +${logdays} |tee >> ${scriptlog}
-	find ${consolelogdir}/* -mtime +${logdays} |tee >> ${scriptlog}
-	scriptcount=$(find ${scriptlogdir}/* -mtime +${logdays}|wc -l)
-	consolecount=$(find ${consolelogdir}/* -mtime +${logdays}|wc -l)
-	count=$((${scriptcount} + ${consolecount}))
-	find ${scriptlogdir}/* -mtime +${logdays} -exec rm {} \;
-	find ${consolelogdir}/* -mtime +${logdays} -exec rm {} \;
-	echo -e "[\e[0;36m INFO \e[0;39m] Log cleaner removed ${count} log files"
-	echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Log cleaner removed ${count} log files" >> ${scriptlog}
-fi
-}
-
-fn_debugserver(){
-fn_rootcheck
-fn_syscheck
-echo ""
-echo "${gamename} Debug"
-echo "============================"
-echo ""
-echo -e "Use for identifying server issues only!"
-echo -e "Press CTRL+c to drop out of debug mode"
-echo -e "\e[0;31mWARNING!\e[0;39m If ${servicename} is already running it will be stopped"
-echo ""
-while true; do
-	read -p "Continue? [y/N]" yn
-	case $yn in
-	[Yy]* ) break;;
-	[Nn]* ) echo Exiting; return 1 ;;
-	* ) echo "Please answer yes or no.";;
-esac
-done
-fn_stopserver
-echo -en "[ .... ] Starting ${servicename}: ${servername} debug mode"
-echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Starting ${servername} debug mode" >> ${scriptlog}
-sleep 0.5
-echo -en "\r[\e[0;32m  OK  \e[0;39m] Starting ${servicename}: ${servername}"
-echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Started ${servername} debug mode" >> ${scriptlog}
-sleep 0.5
-echo -en "\n"
-cd ${filesdir}
-./srcds_run ${parms} -debug
-}
-
-fn_console(){
-fn_rootcheck
-fn_syscheck
-echo ""
-echo "${gamename} Console"
-echo "============================"
-echo ""
-echo "Press \"CTRL+b d\" to exit console"
-echo -e "\e[0;31mWARNING!\e[0;39m Do NOT press CTRL+c to exit"
-echo ""
-while true; do
-	read -p "Continue? [y/N]" yn
-	case $yn in
-	[Yy]* ) break;;
-	[Nn]* ) echo Exiting; return 1 ;;
-	* ) echo "Please answer yes or no.";;
-esac
-done
-echo -en "\r[ .... ] Starting ${servicename} console"
-sleep 0.5
-tmuxwc=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -v failed|grep -E "^${servicename}:"|wc -l)
-if [ ${tmuxwc} -eq 1 ];then
-	echo -e "\r[\e[0;32m  OK  \e[0;39m] Starting ${servicename} console"
-	echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: ${servername} console accessed" >> ${scriptlog}
-	sleep 1
-	tmux attach-session -t ${servicename}
-else
-	echo -e "\r[\e[0;31m FAIL \e[0;39m] Starting ${servicename} console: ${servername} not running"
-	sleep 0.5
-	while true; do
-		read -p "Do you want to start the server? [y/N]" yn
-		case $yn in
-		[Yy]* ) fn_startserver;break;;
-		[Nn]* ) break;;
-		* ) echo "Please answer yes or no.";;
-	esac
-	done
-fi
-}
-
-fn_backupserver(){
-fn_rootcheck
-fn_syscheck
-backupname="${servicename}-$(date '+%Y-%m-%d-%H%M%S')"
-echo ""
-echo "${gamename} Backup"
-echo "============================"
-echo ""
-echo "The following backup will be created."
-echo ""
-echo "${backupdir}/${backupname}.tar.gz"
-echo ""
-while true; do
-	read -p "Continue? [y/N]" yn
-	case $yn in
-	[Yy]* ) break;;
-	[Nn]* ) echo Exiting; return 1 ;;
-	* ) echo "Please answer yes or no.";;
-esac
-done
-tmuxwc=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -v failed|grep -E "^${servicename}:"|wc -l)
-if [ ${tmuxwc} -eq 1 ];then
-	echo -e "\e[0;31mWARNING!\e[0;39m ${servicename} is currently running"
-	while true; do
-		read -p "Would you like to stop ${servicename} while running the backup? [y/N]" yn
-		case $yn in
-		[Yy]* ) fn_stopserver;break;;
-		[Nn]* ) break;;
-		* ) echo "Please answer yes or no.";;
-	esac
-	done
-fi
-echo -en "[ .... ] Starting ${servicename}: ${servername} backup"
-echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Starting ${servername} backup" >> ${scriptlog}
-sleep 0.5
-echo -en "\r[\e[0;32m  OK  \e[0;39m] Starting ${servicename}: ${servername} backup"
-echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Started ${servername} backup" >> ${scriptlog}
-sleep 1
-echo -en "\n"
-cd ${rootdir}
-mkdir ${backupdir} > /dev/null 2>&1
-tar -cvzf ${backupdir}/${backupname}.tar.gz --exclude ${backupdir} *
-echo -en "\r${servicename} backup complete"
-echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: backup complete" >> ${scriptlog}
-}
-
-
-fn_backupserver(){
-fn_rootcheck
-fn_syscheck
-backupname="${servicename}-$(date '+%Y-%m-%d-%H%M%S')"
-echo ""
-echo "${gamename} Backup"
-echo "============================"
-echo ""
-echo "The following backup will be created."
-echo ""
-echo "${backupdir}/${backupname}.tar.gz"
-echo ""
-while true; do
-	read -p "Continue? [y/N]" yn
-	case $yn in
-	[Yy]* ) break;;
-	[Nn]* ) echo Exiting; return 1 ;;
-	* ) echo "Please answer yes or no.";;
-esac
-done
-tmuxwc=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -v failed|grep -E "^${servicename}:"|wc -l)
-if [ ${tmuxwc} -eq 1 ];then
-	echo -e "\e[0;31mWARNING!\e[0;39m ${servicename} is currently running"
-	while true; do
-		read -p "Would you like to stop ${servicename} while running the backup? [y/N]" yn
-		case $yn in
-		[Yy]* ) fn_stopserver;break;;
-		[Nn]* ) break;;
-		* ) echo "Please answer yes or no.";;
-	esac
-	done
-fi
-echo -en "[ .... ] Starting ${servicename}: ${servername} backup"
-echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Starting ${servername} backup" >> ${scriptlog}
-sleep 0.5
-echo -en "\r[\e[0;32m  OK  \e[0;39m] Starting ${servicename}: ${servername} backup"
-echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Started ${servername} backup" >> ${scriptlog}
-sleep 1
-echo -en "\n"
-cd ${rootdir}
-mkdir ${backupdir} > /dev/null 2>&1
-tar -cvzf ${backupdir}/${backupname}.tar.gz --exclude ${backupdir} ${rootdir}
-echo -en "\r${servicename} backup complete"
-echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: backup complete" >> ${scriptlog}
-}
-
-fn_details(){
-echo ""
-echo "${gamename} Server Details"
-echo "============================"
-echo ""
-echo "${servername} Ports"
-echo "======================="
-servername=$(grep -s hostname ${servercfg} | sed 's/hostname //g'|sed 's/"//g')
-rcon=$(grep -s rcon_password ${servercfg} | sed 's/rcon_password //g'|sed 's/"//g')
-echo "Ports the server is currently using"
-echo ""
-echo "DIRECTION	DESCRIPTION		PORT"
-echo "INBOUND		Game/Rcon Port		${port}"
-if [ "${engine}" = "source" ];then
-	echo "INBOUND		SourceTV Port		${sourcetvport}"
-fi
-echo "OUTBOUND	Client Port		${clientport}"
-echo ""
-echo "You can change ports by editing the"
-echo "start parameters in ${selfname}"
-echo ""
-echo "${servername} Details"
-echo "======================="
-echo "Server name: ${servername}"
-echo "Rcon Password: ${rcon}"
-echo ""
-echo "Config file:"
-echo "${servercfg}"
-echo ""
-}
-
-fn_distro(){
-arch=$(uname -m)
-kernel=$(uname -r)
-if [ -f /etc/lsb-release ]; then
-	os=$(lsb_release -s -d)
-elif [ -f /etc/debian_version ]; then
-	os="Debian $(cat /etc/debian_version)"
-elif [ -f /etc/redhat-release ]; then
-	os=$(cat /etc/redhat-release)
-else
-	os="$(uname -s) $(uname -r)"
-fi
-}
-
-fn_uptime(){
-uptime=$(</proc/uptime)
-uptime=${uptime%%.*}
-minutes=$(( uptime/60%60 ))
-hours=$(( uptime/60/60%24 ))
-days=$(( uptime/60/60/24 ))
-}
-
-fn_load(){
-load=$(uptime | awk -F 'load average' '{ print $2 }')
-}
-
-fn_emailnotification(){
-fn_distro
-fn_uptime
-fn_load
-{
-echo -e "========================================\n${servicename} details\n========================================\n"
-echo -e "Service: ${servicename}"
-echo -e "Game: ${gamename}"
-echo -e "Server: ${servername}"
-echo -e "Failure reason: ${failurereason}"
-echo -e "Action Taken: ${actiontaken}\n"
-echo -e "========================================\nServer details\n========================================\n"
-echo -e "Date: $(date)"
-echo -e "Distro: ${os}"
-echo -e "Arch: ${arch}"
-echo -e "Kernel: ${kernel}"
-echo -e "Hostname: $HOSTNAME"
-echo -e "Uptime: ${days}d, ${hours}h, ${minutes}m"
-echo -e "Avg Load${load}\n"
-echo -e "========================================\nLogs\n========================================\n"
-echo -e "Script log\n===================\n"
-}|tee ${scriptlogdir}/${servicename}-email.log > /dev/null 2>&1
-tail -25 ${scriptlog} >> ${emaillog}
-if [ ! -z ${consolelog} ];then
-	echo -e "\n\nConsole log\n====================\n" >> ${emaillog}
-	tail -25 ${consolelog} >> ${emaillog}
-fi
-if [ ! -z ${gamelogdir} ];then
-	echo -e "\n\nServer log\n====================\n" >> ${emaillog}
-	tail ${gamelogdir}/*|grep -v "==>"|sed '/^$/d'|tail -25 >> ${emaillog}
-fi
-mail -s "${subject}" ${email} < ${emaillog}
-echo -en "[\e[0;36m INFO \e[0;39m] Sent email notification to ${email}"
-echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Sent email notification to ${email}" >> ${scriptlog}
-}
-
-fn_emailtest(){
-fn_rootcheck
-fn_syscheck
-echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Emailing test notification" >> ${scriptlog}
-if [ "${emailnotification}" = "on" ];then
-	subject="${servicename} Email Test Notification - Testing ${servername}"
-	failurereason="Testing ${servicename} email notification"
-	actiontaken="Sent test email...hello is this thing on?"
-	fn_emailnotification
-else
-	echo -e "[\e[0;31m FAIL \e[0;39m] Email notification not enabled"
-	echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Email notification not enabled" >> ${scriptlog}
-fi
-sleep 0.5
-echo -en "\n"
-}
-
-fn_serverquery(){
-# uses serverquery.py to directly query the server
-# detects if the server locks up
-if [ -f serverquery.py ];then
-	echo -e "[\e[0;36m INFO \e[0;39m] serverquery.py detected"
-	echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: serverquery.py detected" >> ${scriptlog}
-	echo -e "[\e[0;32m  OK  \e[0;39m] Querying ${servicename}: ${servername}: QUERYING"
-	echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Querying ${servername}: QUERYING" >> ${scriptlog}
-	serverquery=$(./serverquery.py 127.0.0.1 ${port} 2>&1)
-	sleep 1
-	if [ "${serverquery}" = "ERROR 1" ]||[ "${serverquery}" = "ERROR 2" ]||[ "${serverquery}" = "ERROR 3" ];then
-		echo -e "[\e[0;31m FAIL \e[0;39m] Querying ${servicename}: ${servername}: ${serverquery}"
-		echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Querying ${servername}: ${serverquery}" >> ${scriptlog}
-		sleep 1
-		echo -e "[\e[1;33m WARN \e[0;39m] ${servicename}: Monitor detected ${servername} has locked up!"
-		echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Monitor detected ${servername} has locked up!" >> ${scriptlog}
-		sleep 1
-		fn_restartserver
-	else
-		echo -e "[\e[0;32m  OK  \e[0;39m] Querying ${servicename}: ${servername}: ${serverquery}"
-		echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Querying ${servername}: ${serverquery}" >> ${scriptlog}
-		sleep 1
-	fi
-fi
-}
-
-fn_monitorserver(){
-fn_rootcheck
-fn_syscheck
-fn_logmanager
-echo -en "[ .... ] Monitor is checking ${servicename}: ${servername}"
-echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Monitor is checking ${servername}" >> ${scriptlog}
-sleep 0.5
-updatecheck=$(ps -ef|grep "${selfname} update"|grep -v grep|wc -l)
-if [ "${updatecheck}" = "0" ];then
-	fn_runcheck
-	echo -en "\r[\e[1;33m WARN \e[0;39m] ${servicename}: Monitor detected ${servername} had stopped!"
-	echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Monitor detected ${servername} had stopped!" >> ${scriptlog}
-	if [ "${emailnotification}" = "on" ];then
-		subject="${servicename} Monitor - Starting ${servername}"
-		failurereason="${servicename} process was not running"
-		actiontaken="restarted ${servicename}"
-		sleep 0.5
-		echo -en "\n"
-		fn_emailnotification
-	fi
-	sleep 0.5
-	echo -en "\n"
-	echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Monitor is starting ${servername}" >> ${scriptlog}
-	fn_startserver
-else
-	echo -e "[\e[0;36m INFO \e[0;39m] ${servicename}: Monitor detected ${servername} is currently checking for updates!"
-	echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Monitor detected ${servername} is currently checking for updates!" >> ${scriptlog}
-	echo -e "[\e[0;36m INFO \e[0;39m] ${servicename}: ${servername} will start when updating is complete"
-	echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: ${servername} will start when updating is complete" >> ${scriptlog}
-fi
-}
-
-fn_updateserver(){
-fn_rootcheck
-fn_syscheck
-echo -e "[\e[0;32m  OK  \e[0;39m] Updating ${servicename}: ${servername}"
-echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Updating ${servername}" >> ${scriptlog}
-cd ${rootdir}
-cd steamcmd
-./steamcmd.sh +login anonymous +force_install_dir ${filesdir} +app_update ${appid} validate +quit |tee -a ${scriptlog}
-}
-
-fn_restartserver(){
-echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Restarting ${servername}" >> ${scriptlog}
-fn_stopserver
-fn_startserver
-}
-
-fn_stopserver(){
-fn_rootcheck
-fn_syscheck
-pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
-echo -en "[ .... ] Stopping ${servicename}: ${servername}"
-echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Stopping ${servername}" >> ${scriptlog}
-sleep 0.5
-if [ "${pid}" == "0" ];then
-	echo -en "\r[\e[0;31m FAIL \e[0;39m] Stopping ${servicename}: ${servername} is already stopped"
-	echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: ${servername} is already stopped" >> ${scriptlog}
-else
-	tmux kill-session -t ${servicename}
-	echo -en "\r[\e[0;32m  OK  \e[0;39m] Stopping ${servicename}: ${servername}"
-	echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Stopped ${servername}" >> ${scriptlog}
-fi
-sleep 0.5
-echo -en "\n"
-}
-
-fn_startserver(){
-fn_rootcheck
-fn_syscheck
-echo -en "[ .... ] Starting ${servicename}: ${servername}"
-echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Starting ${servername}" >> ${scriptlog}
-sleep 0.5
-fn_runcheck
-fn_logmanager
-mv ${scriptlog} ${scriptlogdate}
-mv ${consolelog} ${consolelogdate}
-cd ${filesdir}
-tmux new-session -d -s ${servicename} "./srcds_run ${parms} |tee -a ${consolelog}"
-sleep 1
-tmuxwc=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
-if [ ${tmuxwc} -eq 0 ];then
-	echo -en "\r[\e[0;31m FAIL \e[0;39m] Starting ${servicename}: Failed to start ${servername}"
-	echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: failed to start ${servername}" >> ${scriptlog}
-else
-	echo -en "\r[\e[0;32m  OK  \e[0;39m] Starting ${servicename}: ${servername}"
-	echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Started ${servername}" >> ${scriptlog}
-fi
-sleep 0.5
-echo -en "\n"
-}
-
-#
-## Installer
-#
-
-fn_header(){
-clear
-echo "================================="
-echo "${gamename}"
-echo "Server Linux Installer"
-echo "by Daniel Gibbs"
-echo "http://danielgibbs.co.uk"
-echo "================================="
-echo ""
-}
-
-fn_hldsdl(){
-echo ""
-echo "Installing hldsupdatetool"
-echo "================================="
-cd ${filesdir}
-if [ ! -f steam ];then
-	wget http://danielgibbs.co.uk/wp-content/uploads/steam
-	chmod +x steam
-else
-	echo "hldsupdatetool already installed!"
-fi
-./steam -verify_all -retry
-}
-
-fn_retryinstall(){
-while true; do
-	read -p "Retry install? [y/N]" yn
-	case $yn in
-	[Yy]* ) fn_install;;
-	[Nn]* ) echo Exiting; exit ;;
-	* ) echo "Please answer yes or no.";;
-	esac
-done
-}
-
-fn_filesdl(){
-echo ""
-echo "Downloading ${gamename} Server Files"
-echo "============================"
-cd ${rootdir}
-mkdir ${filesdir}
-cd ${filesdir}
-if [ ! -f hsb4b-full.zip ];then
-	wget http://www.hidden-source.com/downloads/hsb4b-full.zip
-else
-	echo "hsb4b-full.zip already downloaded!"
-fi
-echo "Running MD5 checksum to verify hsb4b-full.zip"
-sleep 1
-echo "MD5 checksum: 4aa558231d5f945f78ab55364a16dd60"
-md5check=`md5sum hsb4b-full.zip| awk '{print $1;}'`
-echo "File returned: ${md5check}"
-if [ "${md5check}" != "4aa558231d5f945f78ab55364a16dd60" ];then
-	echo "MD5 checksum: FAILED!"
-	read -p "Retry download? [y/N]" yn
-	case $yn in
-	[Yy]* ) rm -f hsb4b-full.zip; fn_filesdl;;
-	[Nn]* ) echo Exiting; exit ;;
-	* ) echo "Please answer yes or no.";;
-	esac
-fi
-echo "MD5 checksum: PASSED"
-echo ""
-if [ ! -f hidden-beta4b1-server.zip ];then
-	wget http://www.hidden-source.com/downloads/hidden-beta4b1-server.zip
-else
-	echo "hidden-beta4b1-server.zip already downloaded!"
-fi
-echo "Running MD5 checksum to verify hidden-beta4b1-server.zip"
-sleep 1
-echo "MD5 checksum: 48052ea54f9638b15fe65d23f6008feb"
-md5check=`md5sum hidden-beta4b1-server.zip| awk '{print $1;}'`
-echo "File returned: ${md5check}"
-if [ "${md5check}" != "48052ea54f9638b15fe65d23f6008feb" ];then
-	echo "MD5 checksum: FAILED!"
-	read -p "Retry download? [y/N]" yn
-	case $yn in
-	[Yy]* ) rm -f hidden-beta4b1-server.zip; fn_filesdl;;
-	[Nn]* ) echo Exiting; exit ;;
-	* ) echo "Please answer yes or no.";;
-	esac
-fi
-echo "MD5 checksum: PASSED"
-echo ""
-}
-
-fn_install(){
-fn_rootcheck
-fn_header
-if [ -d ${filesdir} ];then
-	echo "${gamename} Server is already installed here:"
-	pwd
-	echo ""
-	while true; do
-		read -p "Continue [y/N]" yn
-		case $yn in
-		[Yy]* ) break;;
-		[Nn]* ) echo Exiting; return 1 ;;
-		* ) echo "Please answer yes or no.";;
-		esac
-	done
-fi
-fn_header
-echo "Install Directory:"
-pwd
-echo ""
-while true; do
-	read -p "Continue [y/N]" yn
-	case $yn in
-	[Yy]* ) break;;
-	[Nn]* ) echo Exiting; return 1 ;;
-	* ) echo "Please answer yes or no.";;
-	esac
-done
-fn_header
-echo ""
-echo "Installing ${gamename} Server"
-echo "================================="
-	mkdir -v ${filesdir}
-	mkdir -v ${rootdir}/log
-	mkdir -v ${scriptlogdir}
-	mkdir -v ${consolelogdir}
-	touch ${consolelog}
-	fn_hldsdl
-	echo "Downloading episode 1 game assets"
-	echo "================================="
-	sleep 2
-	./steam -command update -game episode1 -verify_all -retry -dir ${filesdir}
-	fn_filesdl
-	unzip hsb4b-full.zip
-	unzip hidden-beta4b1-server.zip
-	echo ""
-	echo "================================="
-	while true; do
-		read -p "Was the install successful? [y/N]" yn
-		case $yn in
-		[Yy]* ) break;;
-		[Nn]* ) fn_retryinstall ;;
-		* ) echo "Please answer yes or no.";;
-		esac
-	done
-fn_header
-echo "Configuring ${gamename} Server"
-echo "================================="
-	read -p "Enter server name: " servername
-	read -p "Enter rcon password: " rconpass
-	sleep 1
-	echo ""
-	echo "Creating server.cfg"
-	sleep 1
-	echo "Saving as:"
-	echo "${servercfg}"
-	touch ${servercfg}
-	{
-		echo -e "// server name"
-		echo -e "hostname \"${servername}\""
-		echo -e ""
-		echo -e "// rcon passsword"
-		echo -e "rcon_password \"${rconpass}\""
-		echo -e ""
-		echo -e "// Server password"
-		echo -e "sv_password \"\""
-		echo -e ""
-		echo -e "// server logging"
-		echo -e "log on"
-		echo -e "sv_logbans 1"
-		echo -e "sv_logecho 1"
-		echo -e "sv_logfile 1"
-		echo -e "sv_log_onefile 0"
-	}|tee ${servercfg} > /dev/null 2>&1
-	sleep 1
-	echo ""
-	echo "Creating log directory"
-	mkdir -v ${logdir}
-	echo "Setting up logging"
-	if [ ! -h ${rootdir}/log/server ]; then
-		ln -sv ${gamelogdir} ${rootdir}/log/server
-	else
-		echo "Symbolic link ${gamelogdir} => ${rootdir}/log/server already exists!"
-	fi
-	sleep 1
-	fn_header
-	fn_details
-	echo "================================="
-	echo "Install Complete!"
-	echo ""
-	echo "To start server type:"
-	echo "${selfname} start"
-	echo ""
-}
-
-case "$1" in
-	start)
-		fn_startserver;;
-	stop)
-		fn_stopserver;;
-	restart)
-		fn_restartserver;;
-	update)
-		fn_stopserver
-		fn_updateserver-hlds
-		fn_startserver;;
-	monitor)
-		fn_monitorserver;;
-	install)
-		fn_install;;
-	debug)
-		fn_debugserver;;
-	email-test)
-		fn_emailtest;;
-	details)
-		fn_details;;
-	*)
-	echo "Usage: $0 {start|stop|restart|update|monitor|install|debug|email-test|details}"
-	exit 1;;
-esac
-exit