diff --git a/functions/command_fastdl.sh b/functions/command_fastdl.sh index 1c25c310e..5d9cd5ae3 100644 --- a/functions/command_fastdl.sh +++ b/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