Procházet zdrojové kódy

lua file resource generator and tweaks

lrob před 10 roky
rodič
revize
4a49c05a5f
1 změnil soubory, kde provedl 35 přidání a 9 odebrání
  1. 35 9
      functions/command_fastdl.sh

+ 35 - 9
functions/command_fastdl.sh

@@ -13,7 +13,8 @@ function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 check.sh
 
 # Directories
-fastdldir="${rootdir}/fastdl"
+webdir="${rootdir}/www"
+fastdldir="${webdir}/fastdl"
 # Server lua autorun dir, used to autorun lua on client connect to the server
 luasvautorundir="${systemdir}/lua/audoturn/server"
 luafastdlfile="lgsm_cl_force_fastdl.lua"
@@ -31,6 +32,10 @@ while true; do
 	esac
 done
 # Create FastDL folder if it doesn't exit
+if [ ! -d "${webdir}" ]; then
+	echo "Creating www directory"
+	mkdir -v "${webdir}"
+	sleep 1
 if [ ! -d "${fastdldir}" ]; then
 	echo "Creating FastDL directory"
 	mkdir -v "${fastdldir}"
@@ -39,13 +44,13 @@ else
 	echo "Updating FastDL..."
 fi
 # Ask for lua resource add file use
-echo "Do you wish to use a lua file to force clients to download FastDL content ?"
-echo "It can be necessary for addons devs that forgot about registering their files to be downloaded through FastDL"
+echo "Do you wish to generate a lua file to force clients to download all FastDL content ?"
+echo "It is useful for many addons where devs didn't register their files to be downloaded through FastDL."
 while true; do
 	read -p "Continue? [y/n]" yn
 	case $yn in
 	[Yy]* ) luaressource="on"; break;;
-	[Nn]* ) luaressource="off"; return 1;;
+	[Nn]* ) luaressource="off"; return 0;;
 	* ) echo "Please answer yes or no.";;
 	esac
 done
@@ -174,19 +179,40 @@ echo "bzip2 compression done"
 sleep 1
 }
 
-# Function to implement
+# Generate lua file that will force download any file into the FastDL folder
 fn_lua_fastdl(){
-if [ luaressource="off" == "on" ]; then
+# Remove lua file if luaressource is turned off
+if [ ${luaressource} == "off" ]; then
 	if [ -f "${luafastdlfullpath}" ]; then
-		echo "Removing "
+		echo "Removing download enforcer"
+		sleep 1
+		rm -R "${luafastdlfullpath}"
+	fi
+fi
+if [ ${luaressource == "on" ]; then
+	if [ -f "${luafastdlfullpath}" ]; then
+		echo "Removing old download enforcer"
+		sleep 1
+		rm "${luafastdlfullpath}"
+	fi
+	echo "Generating new download enforcer"
+	sleep 1
+	find "${fastdldir}" \( -name "." ! -name "*.bz2" \) -printf '%P\n' | while read line; do
+		echo "resource.AddFile("\""${line}"\"")" >> "${luafastdlfullpath}"
+	done
+	echo "Download enforcer generated"
+	sleep 1
+fi
 }
 
 fn_fastdl_completed(){
 echo "----------------------------------"
 echo "Congratulations, it's done"
-echo "Now you should configure your HTTP server to target the fastdl folder that was created"
+echo "Now you should configure your HTTP server to target the fastdl folder that was created in ${fastdldir}"
 echo "Or copy files to an external server"
 echo "Don't forget to change your sv_downloadurl accordingly in ${servercfgfullpath}"
+echo "You may want to use the www folder to host a loadingurl too,"
+echo "for that purpose, just make a loadingurl folder next to the fastdl folder and put your loadingurl in it"
 if [ "$bzip2installed" == "0" ]; then
 echo "By the way, you'd better install bzip2 an re-run this command"
 fi
@@ -203,7 +229,7 @@ if [ "${gamename}" == "Garry's Mod" ]; then
 	if [ "${bzip2installed}" == "1" ]; then
 		fn_fastdl_bzip2
 	fi
-		fn_lua_fastdl
+	fn_lua_fastdl
 	fn_fastdl_completed
 	exit
 fi