Kaynağa Gözat

Modified function file downloader

Modified from @jaredballou pull request.  Now uses curl as it better
handles errors.

Can now select different repo and branch if needed. This is very useful
for development.
Daniel Gibbs 10 yıl önce
ebeveyn
işleme
08639c6510
1 değiştirilmiş dosya ile 46 ekleme ve 13 silme
  1. 46 13
      TeamFortress2/tf2server

+ 46 - 13
TeamFortress2/tf2server

@@ -3,7 +3,7 @@
 # Server Management Script
 # Author: Daniel Gibbs
 # Website: http://gameservermanagers.com
-version="091215"
+version="121215"
 
 #### Variables ####
 
@@ -37,6 +37,13 @@ parms="-game tf -strictportbind -ip ${ip} -port ${port} +clientport ${clientport
 
 #### Advanced Variables ####
 
+# Github Branch Select
+# Allows for the use of different function files
+# from a different repo and/or branch.
+githubuser="dgibbs64"
+githubrepo="linuxgsm"
+githubbranch="master"
+
 # Steam
 appid="232250"
 
@@ -75,20 +82,46 @@ consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-
 ##### Script #####
 # Do not edit
 
-fn_runfunction(){
-# Functions are downloaded and run with this function
-if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
-	cd "${rootdir}"
-	if [ ! -d "functions" ]; then
-		mkdir functions
+fn_getgithubfile(){
+filename=$1
+exec=$2
+fileurl=${3:-$filename}
+filepath="${rootdir}/${filename}"
+filedir=$(dirname "${filepath}")
+# If the function file is missing, then download
+if [ ! -f "${filepath}" ]; then
+	if [ ! -d "${filedir}" ]; then
+		mkdir "${filedir}"
 	fi
-	cd functions
-	echo -e "    loading ${functionfile}...\c"
-	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
-	chmod +x "${functionfile}"
-	cd "${rootdir}"
+	githuburl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${fileurl}"
+	echo -e "    fetching ${filename}...\c"
+	#wget -N /dev/null "${githuburl}" -O "${filepath}" 2>&1 | grep -F HTTP | cut -c45-
+    if [ "$(command -v curl)" ]||[ "$(which curl >/dev/null 2>&1)" ]||[ -f "/usr/bin/curl" ]||[ -f "/bin/curl" ]; then
+    	echo -e "\e[0;31mFAIL\e[0m\n"
+		echo "Curl is not installed"
+		echo -e ""
+		exit    	
+    fi	
+    CURL=$(curl --fail -o "${filepath}" "${githuburl}" 2>&1)
+	if [ $? -ne 0 ]; then
+		echo -e "\e[0;31mFAIL\e[0m\n"
+		echo "		$CURL"|grep "curl:"
+		echo -e "${githuburl}\n"
+		exit
+	else
+		echo -e "\e[0;32mOK\e[0m"
+	fi	
+	if [ "$exec" ]; then
+		chmod +x "${filepath}"
+	fi
+fi
+if [ "$exec" ]; then
+	source "${filepath}"
 fi
-source "${rootdir}/functions/${functionfile}"
+}
+
+fn_runfunction(){
+	fn_getgithubfile "functions/${functionfile}" 1
 }
 
 fn_functions(){