From f91b736ec7d4970aef6a8e83b0831b30aa0c30d0 Mon Sep 17 00:00:00 2001 From: lrob Date: Wed, 10 Feb 2016 14:10:10 +0100 Subject: [PATCH] Merging all in one, adding new logs support Merging logging, counting, and removing logfiles in one place, to avoid some redundant if statements Also, understanding the code and supporting new logs should be easier. Adding srcds / sm / ulx / darkrp logs support --- functions/logs.sh | 74 ++++++++++++++++++++++++++++------------------- 1 file changed, 44 insertions(+), 30 deletions(-) diff --git a/functions/logs.sh b/functions/logs.sh index 75ad64347..9833b7db0 100644 --- a/functions/logs.sh +++ b/functions/logs.sh @@ -15,7 +15,7 @@ if [ -n "${consolelog}" ]; then fi fi -# Set source log directory +# Set source logs directories if [ -z "${systemdir}" && "${engine}" == "source" ]; then srcdslogdir="${systemdir}/logs" # Set addons directories @@ -27,7 +27,10 @@ if [ -z "${systemdir}" && "${engine}" == "source" ]; then fi fi -# log manager will active if finds logs older than ${logdays} +# Setting up counting variables +scriptcount="0" ; consolecount="0" ; gamecount="0" ; srcdscount="0" ; smcount="0" ; ulxcount="0" ; darkrpcount="0" + +# Log manager will start the cleanup if it finds logs older than ${logdays} if [ $(find "${scriptlogdir}"/ -type f -mtime +${logdays}|wc -l) -ne "0" ]; then fn_printdots "Starting" sleep 1 @@ -39,43 +42,54 @@ if [ $(find "${scriptlogdir}"/ -type f -mtime +${logdays}|wc -l) -ne "0" ]; then fn_scriptlog "Removing logs older than ${logdays} days" sleep 1 echo -en "\n" - # Retrocompatibility, for logs directly in /log folder - # Find game logfiles older than ${logdays} and write that list to the current script log - if [ "${engine}" == "unreal2" ]||[ "${engine}" == "source" ]; then - find "${gamelogdir}"/ -type f -mtime +${logdays}|tee >> "${scriptlog}" - fi - # Find script logfiles older than ${logdays} and write that list to the current script log + # Logging logfiles to be removed according to ${logdays}, counting and removing them + # Script logfiles find "${scriptlogdir}"/ -type f -mtime +${logdays}|tee >> "${scriptlog}" - # Find console logfiles older than ${logdays} and write that list to the current script log - if [ -n "${consolelog}" ]; then - find "${consolelogdir}"/ -type f -mtime +${logdays}|tee >> "${scriptlog}" - fi - # Counting - # Setting up variables - scriptcount="0" ; consolecount="0" ; gamecount="0" ; srcdscount="0" ; smcount="0" ; ulxcount="0" ; darkrpcount="0" + scriptcount=$(find "${scriptlogdir}"/ -type f -mtime +${logdays}|wc -l) + find "${scriptlogdir}"/ -mtime +${logdays} -type f -exec rm -f {} \; # Retrocompatibility, for logs directly in /log folder - # Count how many script logfiles will be removed if [ "${engine}" == "unreal2" ]||[ "${engine}" == "source" ]; then + find "${gamelogdir}"/ -type f -mtime +${logdays}|tee >> "${scriptlog}" gamecount=$(find "${gamelogdir}"/ -type f -mtime +${logdays}|wc -l) - fi - # Count how many script logfiles will be removed - scriptcount=$(find "${scriptlogdir}"/ -type f -mtime +${logdays}|wc -l) - echo "${consolelog}" - # Count how many console logfiles will be removed, if those logs exist - if [ -n "${consolelog}" ]; then - consolecount=$(find "${consolelogdir}"/ -type f -mtime +${logdays}|wc -l) - fi - # Count total amount of files to remove - count=$((${scriptcount} + ${consolecount} + ${gamecount} + ${srcdscount} + ${smcount} + ${ulxcount} + ${darkrpcount})) - - # Removing logfiles - if [ "${engine}" == "unreal2" ]||[ "${engine}" == "source" ]; then find "${gamelogdir}"/ -mtime +${logdays} -type f -exec rm -f {} \; fi - find "${scriptlogdir}"/ -mtime +${logdays} -type f -exec rm -f {} \; + # Console logfiles if [ -n "${consolelog}" ]; then + find "${consolelogdir}"/ -type f -mtime +${logdays}|tee >> "${scriptlog}" + consolecount=$(find "${consolelogdir}"/ -type f -mtime +${logdays}|wc -l) find "${consolelogdir}"/ -mtime +${logdays} -type f -exec rm -f {} \; fi + # SRCDS logfiles + if [ "${engine}" == "source" ]; then + if [ -d "${srcdslogdir}" ]; then + find "${srcdslogdir}"/ -type f -mtime +${logdays}|tee >> "${scriptlog}" + srcdscount=$(find "${srcdslogdir}"/ -type f -mtime +${logdays}|wc -l) + find "${srcdslogdir}"/ -mtime +${logdays} -type f -exec rm -f {} \; + fi + # SourceMod logfiles + if [ -d "${sourcemodlogdir}" ]; then + find "${sourcemodlogdir}"/ -type f -mtime +${logdays}|tee >> "${scriptlog}" + smcount=$(find "${sourcemodlogdir}"/ -type f -mtime +${logdays}|wc -l) + find "${sourcemodlogdir}"/ -mtime +${logdays} -type f -exec rm -f {} \; + fi + # ULX logfiles + if [ "${gamename}" == "Garry's Mod" ] + if [ -d "${ulxlogdir}" ]; then + find "${ulxlogdir}"/ -type f -mtime +${logdays}|tee >> "${scriptlog}" + ulxcount=$(find "${ulxlogdir}"/ -type f -mtime +${logdays}|wc -l) + find "${ulxlogdir}"/ -mtime +${logdays} -type f -exec rm -f {} \; + fi + if [ -d "${darkrplogdir}" ]; then + find "${darkrplogdir}"/ -type f -mtime +${logdays}|tee >> "${scriptlog}" + darkrpcount=$(find "${darkrplogdir}"/ -type f -mtime +${logdays}|wc -l) + find "${darkrplogdir}"/ -mtime +${logdays} -type f -exec rm -f {} \; + fi + fi + fi + + # Count total amount of files removed + count=$((${scriptcount} + ${consolecount} + ${gamecount} + ${srcdscount} + ${smcount} + ${ulxcount} + ${darkrpcount})) + # Job done fn_printok "Removed ${count} log files" fn_scriptlog "Removed ${count} log files" sleep 1