From 687ae5aa72690ed9f4dd0e2444342261b9d0ea70 Mon Sep 17 00:00:00 2001 From: cedarlug Date: Thu, 30 Jun 2016 12:46:12 -0500 Subject: [PATCH 1/3] Fixing the issue when the process id vanishes. --- lgsm/functions/command_stop.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/lgsm/functions/command_stop.sh b/lgsm/functions/command_stop.sh index 8bca6779c..d21efc855 100644 --- a/lgsm/functions/command_stop.sh +++ b/lgsm/functions/command_stop.sh @@ -180,6 +180,7 @@ fn_stop_ark(){ rev | cut -d\/ -f1) # # check for a valid pid + pig=${pid//[!0-9]/} let pid+=0 # turns an empty string into a valid number, '0', # and a valid numeric pid remains unchanged. if [[ $pid -gt 1 && $pid -le $(cat /proc/sys/kernel/pid_max) ]] ; then From 05202ac0c33ae2229471ca3ed9ab5903c64c00e9 Mon Sep 17 00:00:00 2001 From: cedarlug Date: Thu, 30 Jun 2016 18:59:18 -0500 Subject: [PATCH 2/3] Typo's are KILLING ME! --- lgsm/functions/command_stop.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lgsm/functions/command_stop.sh b/lgsm/functions/command_stop.sh index d21efc855..9151c19ec 100644 --- a/lgsm/functions/command_stop.sh +++ b/lgsm/functions/command_stop.sh @@ -180,7 +180,7 @@ fn_stop_ark(){ rev | cut -d\/ -f1) # # check for a valid pid - pig=${pid//[!0-9]/} + pid=${pid//[!0-9]/} let pid+=0 # turns an empty string into a valid number, '0', # and a valid numeric pid remains unchanged. if [[ $pid -gt 1 && $pid -le $(cat /proc/sys/kernel/pid_max) ]] ; then From 5437c55c04cc88958942783017a191532b323910 Mon Sep 17 00:00:00 2001 From: Daniel Gibbs Date: Tue, 12 Jul 2016 15:55:12 +0100 Subject: [PATCH 3/3] files no longer required --- lgsm/functions/install_ts3.sh | 81 -------- lgsm/functions/update_check.sh | 342 --------------------------------- lgsm/functions/update_dl.sh | 85 -------- 3 files changed, 508 deletions(-) delete mode 100644 lgsm/functions/install_ts3.sh delete mode 100644 lgsm/functions/update_check.sh delete mode 100644 lgsm/functions/update_dl.sh diff --git a/lgsm/functions/install_ts3.sh b/lgsm/functions/install_ts3.sh deleted file mode 100644 index 44d2b4231..000000000 --- a/lgsm/functions/install_ts3.sh +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/bash -# LGSM install_ts3.sh function -# Author: Daniel Gibbs -# Website: https://gameservermanagers.com -lgsm_version="210516" - -local modulename="Install" - -info_distro.sh -# Gets the teamspeak server architecture -if [ "${arch}" == "x86_64" ]; then - ts3arch="amd64" -elif [ "${arch}" == "i386" ]||[ "${arch}" == "i686" ]; then - ts3arch="x86" -else - fn_print_failure "${arch} is an unsupported architecture" - exit 1 -fi - -# Grabs all version numbers but not in correct order -wget "http://dl.4players.de/ts/releases/?C=M;O=D" -q -O -| grep -i dir | egrep -o '.*\/<\/a>' | egrep -o '[0-9\.?]+'|uniq > .ts3_version_numbers_unsorted.tmp - -# Sort version numbers -cat .ts3_version_numbers_unsorted.tmp | sort -r --version-sort -o .ts3_version_numbers_sorted.tmp - -# Finds directory with most recent server version. -while read ts3_version_number; do - wget --spider -q "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" - if [ $? -eq 0 ]; then - availablebuild="${ts3_version_number}" - # Break while-loop, if the latest release could be found - break - fi -done < .ts3_version_numbers_sorted.tmp - -# Tidy up -rm -f ".ts3_version_numbers_unsorted.tmp" -rm -f ".ts3_version_numbers_sorted.tmp" - -# Checks availablebuild info is available -if [ -z "${availablebuild}" ]; then - fn_print_fail "Checking for update: teamspeak.com" - sleep 1 - fn_print_fail "Checking for update: teamspeak.com: Not returning version info" - sleep 2 - exit 1 -fi - -echo "" -echo "Installing ${gamename} Server" -echo "=================================" -cd "${rootdir}" -echo -e "downloading teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2...\c" -wget -N /dev/null http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2 2>&1 | grep -F HTTP | cut -c45-| uniq -sleep 1 -echo -e "extracting teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2...\c" -tar -xf "teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" 2> ".${servicename}-tar-error.tmp" -local status=$? -if [ ${status} -eq 0 ]; then - echo "OK" -else - echo "FAIL - Exit status ${status}" - sleep 1 - cat ".${servicename}-tar-error.tmp" - rm ".${servicename}-tar-error.tmp" - exit $? -fi -echo -e "copying to ${filesdir}...\c" -cp -R "${rootdir}/teamspeak3-server_linux_${ts3arch}/"* "${filesdir}" 2> ".${servicename}-cp-error.tmp" -local status=$? -if [ ${status} -eq 0 ]; then - echo "OK" -else - echo "FAIL - Exit status ${status}" - sleep 1 - cat ".${servicename}-cp-error.tmp" - rm ".${servicename}-cp-error.tmp" - exit $? -fi -rm -f "teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" -rm -rf "${rootdir}/teamspeak3-server_linux_${ts3arch}" diff --git a/lgsm/functions/update_check.sh b/lgsm/functions/update_check.sh deleted file mode 100644 index c5c7a8359..000000000 --- a/lgsm/functions/update_check.sh +++ /dev/null @@ -1,342 +0,0 @@ -#!/bin/bash -# LGSM update_check.sh function -# Author: Daniel Gibbs -# Website: https://gameservermanagers.com -lgsm_version="210516" - -# Description: Checks if a server update is available. - -local modulename="Update" -function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))" - -### SteamCMD Update Checker ### - -fn_appmanifestinfo(){ - appmanifestfile=$(find "${filesdir}" -type f -name "appmanifest_${appid}.acf") - appmanifestfilewc=$(find "${filesdir}" -type f -name "appmanifest_${appid}.acf"|wc -l) -} - -fn_appmanifestcheck(){ - fn_appmanifestinfo - # Multiple or no matching appmanifest files may sometimes be available. - # This is an error is corrected below if required. - if [ "${appmanifestfilewc}" -ge "2" ]; then - sleep 1 - fn_print_warn "Multiple appmanifest_${appid}.acf files found" - fn_scriptlog "Warning! Multiple appmanifest_${appid}.acf files found" - sleep 2 - fn_print_dots "Removing x${appmanifestfilewc} appmanifest_${appid}.acf files" - sleep 1 - for appfile in ${appmanifestfile}; do - rm "${appfile}" - done - appmanifestfilewc1="${appmanifestfilewc}" - fn_appmanifestinfo - if [ "${appmanifestfilewc}" -ge "2" ]; then - fn_print_fail "Unable to remove x${appmanifestfilewc} appmanifest_${appid}.acf files" - fn_scriptlog "Failure! Unable to remove x${appmanifestfilewc} appmanifest_${appid}.acf files" - sleep 1 - echo "" - echo " Check user permissions" - for appfile in ${appmanifestfile}; do - echo " ${appfile}" - done - exit 1 - else - sleep 1 - fn_print_ok "Removed x${appmanifestfilewc1} appmanifest_${appid}.acf files" - fn_scriptlog "Success! Removed x${appmanifestfilewc1} appmanifest_${appid}.acf files" - sleep 1 - fn_print_info_nl "Forcing update to correct issue" - fn_scriptlog "Forcing update to correct issue" - sleep 1 - update_dl.sh - update_check.sh - fi - elif [ "${appmanifestfilewc}" -eq "0" ]; then - if [ "${forceupdate}" == "1" ]; then - fn_print_fail "Still no appmanifest_${appid}.acf found: Unable to update" - fn_scriptlog "Warning! Still no appmanifest_${appid}.acf found: Unable to update" - exit 1 - fi - forceupdate=1 - fn_print_warn "No appmanifest_${appid}.acf found" - fn_scriptlog "Warning! No appmanifest_${appid}.acf found" - sleep 2 - fn_print_info_nl "Forcing update to correct issue" - fn_scriptlog "Forcing update to correct issue" - sleep 1 - update_dl.sh - update_check.sh - fi -} - -fn_logupdaterequest(){ - # Checks for server update requests from server logs. - fn_print_dots "Checking for update: Server logs" - fn_scriptlog "Checking for update: Server logs" - sleep 1 - requestrestart=$(grep -Ec "MasterRequestRestart" "${consolelog}") - if [ "${requestrestart}" -ge "1" ]; then - fn_print_ok_nl "Checking for update: Server logs: Update requested" - sleep 1 - echo "" - echo -ne "Applying update.\r" - sleep 1 - echo -ne "Applying update..\r" - sleep 1 - echo -ne "Applying update...\r" - sleep 1 - echo -ne "\n" - - unset updateonstart - check_status.sh - if [ "${status}" != "0" ]; then - command_stop.sh - update_dl.sh - command_start.sh - else - update_dl.sh - fi - alert="update" - alert.sh - else - fn_print_ok "Checking for update: Server logs: No update requested" - sleep 1 - fi -} - -fn_steamcmdcheck(){ - fn_appmanifestcheck - # Checks for server update from SteamCMD - fn_print_dots "Checking for update: SteamCMD" - fn_scriptlog "Checking for update: SteamCMD" - sleep 1 - - # Gets currentbuild - currentbuild=$(grep buildid "${appmanifestfile}" | tr '[:blank:]"' ' ' | tr -s ' ' | cut -d\ -f3) - - # Removes appinfo.vdf as a fix for not always getting up to date version info from SteamCMD - - # Gets availablebuild info - cd "${rootdir}/steamcmd" - if [ -f "${HOME}/Steam/appcache/appinfo.vdf" ]; then - rm -f "${HOME}/Steam/appcache/appinfo.vdf" - fi - - # set branch for updateinfo - IFS=' ' read -a branchsplits <<< "${branch}" - if [ "${#branchsplits[@]}" -gt 1 ]; then - branchname="${branchsplits[1]}" - else - branchname="public" - fi - - availablebuild=$(./steamcmd.sh +login "${steamuser}" "${steampass}" +app_info_update 1 +app_info_print "${appid}" +app_info_print "${appid}" +quit | grep -EA 1000 "^\s+\"branches\"$" | grep -EA 5 "^\s+\"${branchname}\"$" | grep -m 1 -EB 10 "^\s+}$" | grep -E "^\s+\"buildid\"\s+" | tr '[:blank:]"' ' ' | tr -s ' ' | cut -d\ -f3) - if [ -z "${availablebuild}" ]; then - fn_print_fail "Checking for update: SteamCMD" - fn_scriptlog "Failure! Checking for update: SteamCMD" - sleep 1 - fn_print_fail_nl "Checking for update: SteamCMD: Not returning version info" - fn_scriptlog "Failure! Checking for update: SteamCMD: Not returning version info" - exit 1 - else - fn_print_ok "Checking for update: SteamCMD" - fn_scriptlog "Success! Checking for update: SteamCMD" - sleep 1 - fi - - if [ "${currentbuild}" != "${availablebuild}" ]; then - echo -e "\n" - echo -e "Update available:" - sleep 1 - echo -e " Current build: \e[0;31m${currentbuild}\e[0;39m" - echo -e " Available build: \e[0;32m${availablebuild}\e[0;39m" - echo -e "" - echo -e " https://steamdb.info/app/${appid}/" - sleep 1 - echo "" - echo -en "Applying update.\r" - sleep 1 - echo -en "Applying update..\r" - sleep 1 - echo -en "Applying update...\r" - sleep 1 - echo -en "\n" - fn_scriptlog "Update available" - fn_scriptlog "Current build: ${currentbuild}" - fn_scriptlog "Available build: ${availablebuild}" - fn_scriptlog "${currentbuild} > ${availablebuild}" - - unset updateonstart - check_status.sh - if [ "${status}" != "0" ]; then - command_stop.sh - update_dl.sh - command_start.sh - else - update_dl.sh - fi - alert="update" - alert.sh - else - echo -e "\n" - echo -e "No update available:" - echo -e " Current version: \e[0;32m${currentbuild}\e[0;39m" - echo -e " Available version: \e[0;32m${availablebuild}\e[0;39m" - echo -e " https://steamdb.info/app/${appid}/" - echo -e "" - fn_print_ok_nl "No update available" - fn_scriptlog "Current build: ${currentbuild}" - fn_scriptlog "Available build: ${availablebuild}" - fi -} - -### END SteamCMD Update Checker ### - -fn_teamspeak3_check(){ - # Checks for server update from teamspeak.com using a mirror dl.4players.de - fn_print_dots "Checking for update: teamspeak.com" - fn_scriptlog "Checking for update: teamspeak.com" - sleep 1 - - # Gets currentbuild info - # Checks currentbuild info is available, if fails a server restart will be forced to generate logs - if [ -z "$(find ./* -name 'ts3server*_0.log')" ]; then - fn_print_fail "Checking for update: teamspeak.com" - sleep 1 - fn_print_fail_nl "Checking for update: teamspeak.com: No logs with server version found" - fn_scriptlog "Failure! Checking for update: teamspeak.com: No logs with server version found" - sleep 2 - fn_print_info_nl "Checking for update: teamspeak.com: Forcing server restart" - fn_scriptlog "Checking for update: teamspeak.com: Forcing server restart" - sleep 2 - command_stop.sh - command_start.sh - sleep 2 - # If still failing will exit - if [ -z "$(find ./* -name 'ts3server*_0.log')" ]; then - fn_print_fail_nl "Checking for update: teamspeak.com: Still No logs with server version found" - fn_scriptlog "Failure! Checking for update: teamspeak.com: Still No logs with server version found" - exit 1 - fi - fi - currentbuild=$(cat $(find ./* -name 'ts3server*_0.log' 2> /dev/null | sort | egrep -E -v '${rootdir}/.ts3version' | tail -1) | egrep -o 'TeamSpeak 3 Server ((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}' | egrep -o '((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}') - - # Gets the teamspeak server architecture - info_distro.sh - if [ "${arch}" == "x86_64" ]; then - ts3arch="amd64" - elif [ "${arch}" == "i386" ]||[ "${arch}" == "i686" ]; then - ts3arch="x86" - else - echo "" - fn_print_failure "${arch} is an unsupported architecture" - exit 1 - fi - - # Gets availablebuild info - - # Grabs all version numbers but not in correct order - wget "http://dl.4players.de/ts/releases/?C=M;O=D" -q -O -| grep -i dir | egrep -o '.*\/<\/a>' | egrep -o '[0-9\.?]+'|uniq > .ts3_version_numbers_unsorted.tmp - - # Sort version numbers - cat .ts3_version_numbers_unsorted.tmp | sort -r --version-sort -o .ts3_version_numbers_sorted.tmp - - # Finds directory with most recent server version. - while read ts3_version_number; do - wget --spider -q "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" - if [ $? -eq 0 ]; then - availablebuild="${ts3_version_number}" - # Break while-loop, if the latest release could be found - break - fi - done < .ts3_version_numbers_sorted.tmp - - # Tidy up - rm -f ".ts3_version_numbers_unsorted.tmp" - rm -f ".ts3_version_numbers_sorted.tmp" - - # Checks availablebuild info is available - if [ -z "${availablebuild}" ]; then - fn_print_fail "Checking for update: teamspeak.com" - fn_scriptlog "Checking for update: teamspeak.com" - sleep 1 - fn_print_fail "Checking for update: teamspeak.com: Not returning version info" - fn_scriptlog "Failure! Checking for update: teamspeak.com: Not returning version info" - sleep 2 - exit 1 - else - fn_print_ok "Checking for update: teamspeak.com" - fn_scriptlog "Success! Checking for update: teamspeak.com" - sleep 1 - fi - - # Removes dots so if can compare version numbers - currentbuilddigit=$(echo "${currentbuild}"|tr -cd '[:digit:]') - availablebuilddigit=$(echo "${availablebuild}"|tr -cd '[:digit:]') - if [ "${currentbuilddigit}" -ne "${availablebuilddigit}" ]; then - echo -e "\n" - echo -e "Update available:" - sleep 1 - echo -e " Current build: \e[0;31m${currentbuild} ${architecture}\e[0;39m" - echo -e " Available build: \e[0;32m${availablebuild} ${architecture}\e[0;39m" - echo -e "" - sleep 1 - echo "" - echo -en "Applying update.\r" - sleep 1 - echo -en "Applying update..\r" - sleep 1 - echo -en "Applying update...\r" - sleep 1 - echo -en "\n" - fn_scriptlog "Update available" - fn_scriptlog "Current build: ${currentbuild}" - fn_scriptlog "Available build: ${availablebuild}" - fn_scriptlog "${currentbuild} > ${availablebuild}" - - unset updateonstart - check_status.sh - if [ "${status}" == "0" ]; then - update_dl.sh - command_start.sh - sleep 5 - command_stop.sh - else - command_stop.sh - update_dl.sh - command_start.sh - fi - alert="update" - alert.sh - else - echo -e "\n" - echo -e "No update available:" - echo -e " Current version: \e[0;32m${currentbuild}\e[0;39m" - echo -e " Available version: \e[0;32m${availablebuild}\e[0;39m" - echo -e "" - fn_print_ok_nl "No update available" - fn_scriptlog "Current build: ${currentbuild}" - fn_scriptlog "Available build: ${availablebuild}" - fi -} - -check.sh -fn_print_dots "Checking for update" -if [ "${gamename}" == "Teamspeak 3" ]; then - fn_teamspeak3_check -elif [ "${engine}" == "goldsource" ]||[ "${forceupdate}" == "1" ]; then - # Goldsource servers bypass checks as fn_steamcmdcheck does not work for appid 90 servers. - # forceupdate bypasses checks - if [ "${status}" != "0" ]; then - command_stop.sh - update_dl.sh - command_start.sh - else - update_dl.sh - fi -else - fn_logupdaterequest - fn_steamcmdcheck -fi diff --git a/lgsm/functions/update_dl.sh b/lgsm/functions/update_dl.sh deleted file mode 100644 index 0adda4991..000000000 --- a/lgsm/functions/update_dl.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/bash -# LGSM update_dl.sh function -# Author: Daniel Gibbs -# Website: https://gameservermanagers.com -lgsm_version="210516" - -# Description: Runs a server update. - -local modulename="Update" -function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))" - -fn_steamcmd_dl(){ - cd "${rootdir}" - cd "steamcmd" - - # Detects if unbuffer command is available. - if [ $(command -v unbuffer) ]; then - unbuffer=unbuffer - elif [ $(command -v stdbuf) ]; then - unbuffer="stdbuf -i0 -o0 -e0" - fi - - 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 -a "${scriptlog}" - else - ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" +quit | tee -a "${scriptlog}" - fi - - fix.sh -} - -fn_teamspeak3_dl(){ - cd "${rootdir}" - echo -e "downloading teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2...\c" - fn_scriptlog "Downloading teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" - wget -N /dev/null http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2 2>&1 | grep -F HTTP | cut -c45-| uniq - sleep 1 - echo -e "extracting teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2...\c" - fn_scriptlog "Extracting teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" - tar -xf "teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" 2> "${scriptlogdir}/.${servicename}-tar-error.tmp" - local status=$? - if [ ${status} -eq 0 ]; then - echo "OK" - else - echo "FAIL - Exit status ${status}" - fn_scriptlog "Failed to extract - Exit status ${status}" - sleep 1 - cat "${scriptlogdir}/.${servicename}-tar-error.tmp" - cat "${scriptlogdir}/.${servicename}-tar-error.tmp" >> "${scriptlog}" - rm "${scriptlogdir}/.${servicename}-tar-error.tmp" - fn_scriptlog "Failure! Unable to update" - exit ${status} - fi - echo -e "copying to ${filesdir}...\c" - fn_scriptlog "Copying to ${filesdir}" - cp -R "${rootdir}/teamspeak3-server_linux_${ts3arch}/"* "${filesdir}" 2> "${scriptlogdir}/.${servicename}-cp-error.tmp" - local status=$? - if [ ${status} -eq 0 ]; then - echo "OK" - else - echo "FAIL - Exit status ${status}" - fn_scriptlog "Failed to copy - Exit status ${status}" - sleep 1 - cat "${scriptlogdir}/.${servicename}-cp-error.tmp" - cat "${scriptlogdir}/.${servicename}-cp-error.tmp" >> "${scriptlog}" - rm "${scriptlogdir}/.${servicename}-cp-error.tmp" - fn_scriptlog "Failure! Unable to update" - exit ${status} - fi - rm -f teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2 - rm -rf "${rootdir}/teamspeak3-server_linux_${ts3arch}" -} - -check.sh -info_config.sh -fn_print_dots "Updating ${servername}" -sleep 1 -fn_print_ok_nl "Updating ${servername}" -fn_scriptlog "Updating ${servername}" -sleep 1 -if [ "${gamename}" == "Teamspeak 3" ]; then - fn_teamspeak3_dl -else - fn_steamcmd_dl -fi