| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #!/bin/bash
- # LGSM fn_install_serverfiles function
- # Author: Daniel Gibbs
- # Website: http://gameservermanagers.com
- # Version: 051115
- fn_steaminstallcommand(){
- fn_check_steamuser
- counter="0"
- while [ "${counter}" == "0" ]||[ "$(grep -wc 0x402 .fn_install_serverfiles.tmp)" -ge "1" ]||[ "$(grep -wc 0x406 .fn_install_serverfiles.tmp)" -ge "1" ]||[ "$(grep -wc 0x6 .fn_install_serverfiles.tmp)" -ge "1" ]||[ "$(grep -wc 0x106 .fn_install_serverfiles.tmp)" -ge "1" ]; do
- counter=$((counter+1))
- cd "${rootdir}/steamcmd"
- if [ "${counter}" -le "10" ]; then
- # Attempt 1-4: Standard attempt
- # Attempt 5-6: Validate attempt
- # Attempt 7-8: Validate, delete long name dir
- # Attempt 9-10: Validate, delete long name dir, re-download SteamCMD
- # Attempt 11: Failure
- if [ "${counter}" -ge "2" ]; then
- fn_printwarningnl "SteamCMD did not complete the download, retrying: Attempt ${counter}:"
- fi
- if [ "${counter}" -ge "7" ]; then
- echo "Removing $(find ${filesdir} -type d -print0 | grep -Ez '[^/]{30}$')"
- find ${filesdir} -type d -print0 | grep -Ez '[^/]{30}$' | xargs -0 rm -rf
- fi
- if [ "${counter}" -ge "9" ]; then
- rm -rf "${rootdir}/steamcmd"
- fn_check_steamcmd
- fi
- # Detects if unbuffer command is available.
- if [ $(command -v unbuffer) ]; then
- unbuffer=unbuffer
- fi
- if [ "${counter}" -le "4" ]; then
- if [ "${engine}" == "goldsource" ]; then
- ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" +quit |tee .fn_install_serverfiles.tmp
- else
- ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" +quit |tee .fn_install_serverfiles.tmp
- fi
- elif [ "${counter}" -ge "5" ]; then
- if [ "${engine}" == "goldsource" ]; then
- ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" -validate +quit |tee .fn_install_serverfiles.tmp
- else
- ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" -validate +quit |tee .fn_install_serverfiles.tmp
- fi
- fi
- elif [ "${counter}" -ge "11" ]; then
- fn_printfailurenl "SteamCMD did not complete the download, too many retrys"
- break
- fi
- done
- # Goldsource servers commonly fail to download all the server files required.
- # Validating a few of times may reduce the chance of this issue.
- if [ "${engine}" == "goldsource" ]; then
- counter="0"
- while [ "${counter}" -le "4" ]; do
- counter=$((counter+1))
- ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" -validate +quit |tee .fn_install_serverfiles.tmp
- done
- fi
- rm -f .fn_install_serverfiles.tmp
- }
- echo ""
- echo "Installing ${gamename} Server"
- echo "================================="
- sleep 1
- mkdir -pv "${filesdir}"
- cd "${rootdir}/steamcmd"
- fn_steaminstallcommand
- if [ -z "${autoinstall}" ]; then
- echo ""
- echo "================================="
- while true; do
- read -e -i "y" -p "Was the install successful? [Y/n]" yn
- case $yn in
- [Yy]* ) break;;
- [Nn]* ) fn_install_retry;;
- * ) echo "Please answer yes or no.";;
- esac
- done
- fi
|