瀏覽代碼

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 年之前
父節點
當前提交
08639c6510
共有 1 個文件被更改,包括 46 次插入13 次删除
  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(){