Skip to content

Commit

Permalink
Merge pull request #50 from Dateranoth/choosRestartDays
Browse files Browse the repository at this point in the history
Choose Different Restart Days
  • Loading branch information
Dateranoth authored Jun 24, 2018
2 parents 56d8651 + 2b6fe21 commit e6fb312
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 49 deletions.
43 changes: 34 additions & 9 deletions src/ConanServerUtility/ConanServerUtility.au3
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=..\..\resources\favicon.ico
#AutoIt3Wrapper_Outfile=..\..\build\ConanServerUtility_x86_v3.2.3.exe
#AutoIt3Wrapper_Outfile_x64=..\..\build\ConanServerUtility_x64_v3.2.3.exe
#AutoIt3Wrapper_Outfile=..\..\build\ConanServerUtility_x86_v3.3.0-beta.3.exe
#AutoIt3Wrapper_Outfile_x64=..\..\build\ConanServerUtility_x64_v3.3.0-beta.3.exe
#AutoIt3Wrapper_Compile_Both=y
#AutoIt3Wrapper_UseX64=y
#AutoIt3Wrapper_Res_Comment=By Dateranoth - June 7, 2018
#AutoIt3Wrapper_Res_Comment=By Dateranoth - June 18, 2018
#AutoIt3Wrapper_Res_Description=Utility for Running Conan Server
#AutoIt3Wrapper_Res_Fileversion=3.2.3
#AutoIt3Wrapper_Res_Fileversion=3.3.0-beta.3
#AutoIt3Wrapper_Res_LegalCopyright=Dateranoth @ https://gamercide.com
#AutoIt3Wrapper_Res_Language=1033
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Expand Down Expand Up @@ -93,6 +93,25 @@ Func LogWrite($sString)
FileWriteLine($g_c_sLogFile, _NowCalc() & " [" & $ServerName & " (PID: " & $g_sConanPID & ")] " & $sString)
EndFunc ;==>LogWrite

Func DailyRestartCheck($sWDays, $sHours, $sMin)
Local $iDay = -1
Local $iHour = -1
Local $aDays = StringSplit($sWDays, ",")
Local $aHours = StringSplit($sHours, ",")
For $d = 1 To $aDays[0]
$iDay = StringStripWS($aDays[$d], 8)
If Int($iDay) = Int(@WDAY) Or Int($iDay) = 0 Then
For $h = 1 To $aHours[0]
$iHour = StringStripWS($aHours[$h], 8)
If Int($iHour) = Int(@HOUR) And Int($sMin) = Int(@MIN) Then
Return True
EndIf
Next
EndIf
Next
Return False
EndFunc ;==>DailyRestartCheck

Func RotateFile($sFile, $sBackupQty, $bDelOrig = True) ;Pass File to Rotate and Quantity of Files to Keep for backup. Optionally Keep Original.
Local $hCreateTime = @YEAR & @MON & @MDAY
For $i = $sBackupQty To 1 Step -1
Expand Down Expand Up @@ -677,7 +696,7 @@ EndFunc ;==>CloseEPointError

#Region ;**** Startup Checks. Initial Log, Read INI, Check for Correct Paths, Check Remote Restart is bound to port. ****
OnAutoItExitRegister("Gamercide")
FileWriteLine($g_c_sLogFile, _NowCalc() & " ConanServerUtility Script V3.2.3 Started")
FileWriteLine($g_c_sLogFile, _NowCalc() & " ConanServerUtility Script V3.3.0-beta.3 Started")
ReadUini($g_c_sIniFile, $g_c_sLogFile)

If $UseSteamCMD = "yes" Then
Expand Down Expand Up @@ -774,10 +793,16 @@ While True ;**** Loop Until Closed ****
Local $sRestart = _RemoteRestart($MainSocket, $RestartCode, $g_sRKey, $sObfuscatePass, $g_IP, $ServerName, $g_bDebug)
Switch @error
Case 0
If ProcessExists($g_sConanPID) Then

If ProcessExists($g_sConanPID) And ($g_iBeginDelayedShutdown = 0) Then
Local $MEM = ProcessGetStats($g_sConanPID, 0)
FileWriteLine($g_c_sLogFile, _NowCalc() & " [" & $ServerName & " (PID: " & $g_sConanPID & ")] [Work Memory:" & $MEM[0] & " | Peak Memory:" & $MEM[1] & "] " & $sRestart)
CloseServer()
If ($sUseDiscordBot = "yes") Or ($sUseTwitchBot = "yes") Or ($g_sUseMCRCON = "yes") Then
$g_iBeginDelayedShutdown = 1
$g_sTimeCheck0 = _NowCalc
Else
CloseServer()
EndIf
EndIf
Case 1 To 4
FileWriteLine($g_c_sLogFile, _NowCalc() & " " & $sRestart & @CRLF)
Expand Down Expand Up @@ -876,8 +901,8 @@ While True ;**** Loop Until Closed ****
EndIf
#EndRegion ;**** Keep Server Alive Check. ****

#Region ;**** Restart Server Every X Hours ****
If ((@HOUR = $HotHour1 Or @HOUR = $HotHour2 Or @HOUR = $HotHour3 Or @HOUR = $HotHour4 Or @HOUR = $HotHour5 Or @HOUR = $HotHour6) And @MIN = $HotMin And $RestartDaily = "yes" And ((_DateDiff('n', $g_sTimeCheck2, _NowCalc())) >= 1)) And ($g_iBeginDelayedShutdown = 0) Then
#Region ;**** Restart Server Every X Days and X Hours & Min****
If (($g_sRestartDaily = "yes") And ((_DateDiff('n', $g_sTimeCheck2, _NowCalc())) >= 1) And (DailyRestartCheck($g_sRestartDays, $g_sRestartHours, $g_sRestartMin)) And ($g_iBeginDelayedShutdown = 0) ) Then
If ProcessExists($g_sConanPID) Then
Local $MEM = ProcessGetStats($g_sConanPID, 0)
FileWriteLine($g_c_sLogFile, _NowCalc() & " [" & $ServerName & " (PID: " & $g_sConanPID & ")] Work Memory:" & $MEM[0] & " Peak Memory:" & $MEM[1] & " - Daily Restart Requested by ConanServerUtility Script")
Expand Down
56 changes: 16 additions & 40 deletions src/ConanServerUtility/required/UserSettingsIni.au3
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,10 @@ Func ReadUini($sIniFile, $sLogFile)
Global $UpdateInterval = IniRead($sIniFile, "Update Check Interval in Minutes 05-59", "UpdateInterval", $iniCheck)
Global $g_sUpdateMods = IniRead($sIniFile, "Install Mods and Check for Update? yes/no", "CheckForModUpdate", $iniCheck)
Global $g_sMods = IniRead($sIniFile, "Install Mods and Check for Update? yes/no", "ModList", $iniCheck)
Global $RestartDaily = IniRead($sIniFile, "Restart Server Daily? yes/no", "RestartDaily", $iniCheck)
Global $HotHour1 = IniRead($sIniFile, "Daily Restart Hours? 00-23", "HotHour1", $iniCheck)
Global $HotHour2 = IniRead($sIniFile, "Daily Restart Hours? 00-23", "HotHour2", $iniCheck)
Global $HotHour3 = IniRead($sIniFile, "Daily Restart Hours? 00-23", "HotHour3", $iniCheck)
Global $HotHour4 = IniRead($sIniFile, "Daily Restart Hours? 00-23", "HotHour4", $iniCheck)
Global $HotHour5 = IniRead($sIniFile, "Daily Restart Hours? 00-23", "HotHour5", $iniCheck)
Global $HotHour6 = IniRead($sIniFile, "Daily Restart Hours? 00-23", "HotHour6", $iniCheck)
Global $HotMin = IniRead($sIniFile, "Daily Restart Minute? 00-59", "HotMin", $iniCheck)
Global $g_sRestartDaily = IniRead($sIniFile, "Restart Server Daily? yes/no", "RestartDaily", $iniCheck)
Global $g_sRestartDays = IniRead($sIniFile, "Daily Restart Hours Comma Seperated 0=Everyday Sunday=1 Saturday=7 0-7", "RestartDays", $iniCheck)
Global $g_sRestartHours = IniRead($sIniFile, "Daily Restart Hours Comma Seperated 00-23", "RestartHours", $iniCheck)
Global $g_sRestartMin = IniRead($sIniFile, "Daily Restart Minute 00-59", "RestartMinute", $iniCheck)
Global $ExMem = IniRead($sIniFile, "Excessive Memory Amount?", "ExMem", $iniCheck)
Global $ExMemRestart = IniRead($sIniFile, "Restart On Excessive Memory Use? yes/no", "ExMemRestart", $iniCheck)
Global $SteamFix = IniRead($sIniFile, "Running Server with Steam Open? (yes/no)", "SteamFix", $iniCheck)
Expand Down Expand Up @@ -186,36 +182,20 @@ Func ReadUini($sIniFile, $sLogFile)
$g_sMods = "#########,#########"
$iIniFail += 1
EndIf
If $iniCheck = $RestartDaily Then
$RestartDaily = "no"
If $iniCheck = $g_sRestartDaily Then
$g_sRestartDaily = "no"
$iIniFail += 1
EndIf
If $iniCheck = $HotHour1 Then
$HotHour1 = "00"
If $iniCheck = $g_sRestartDays Then
$g_sRestartDays = "2,4,6"
$iIniFail += 1
EndIf
If $iniCheck = $HotHour2 Then
$HotHour2 = "00"
If $iniCheck = $g_sRestartHours Then
$g_sRestartHours = "12,23"
$iIniFail += 1
EndIf
If $iniCheck = $HotHour3 Then
$HotHour3 = "00"
$iIniFail += 1
EndIf
If $iniCheck = $HotHour4 Then
$HotHour4 = "00"
$iIniFail += 1
EndIf
If $iniCheck = $HotHour5 Then
$HotHour5 = "00"
$iIniFail += 1
EndIf
If $iniCheck = $HotHour6 Then
$HotHour6 = "00"
$iIniFail += 1
EndIf
If $iniCheck = $HotMin Then
$HotMin = "01"
If $iniCheck = $g_sRestartMin Then
$g_sRestartMin = "01"
$iIniFail += 1
EndIf
If $iniCheck = $ExMem Then
Expand Down Expand Up @@ -456,14 +436,10 @@ Func UpdateIni($sIniFile)
IniWrite($sIniFile, "Update Check Interval in Minutes 05-59", "UpdateInterval", $UpdateInterval)
IniWrite($sIniFile, "Install Mods and Check for Update? yes/no", "CheckForModUpdate", $g_sUpdateMods)
IniWrite($sIniFile, "Install Mods and Check for Update? yes/no", "ModList", $g_sMods)
IniWrite($sIniFile, "Restart Server Daily? yes/no", "RestartDaily", $RestartDaily)
IniWrite($sIniFile, "Daily Restart Hours? 00-23", "HotHour1", $HotHour1)
IniWrite($sIniFile, "Daily Restart Hours? 00-23", "HotHour2", $HotHour2)
IniWrite($sIniFile, "Daily Restart Hours? 00-23", "HotHour3", $HotHour3)
IniWrite($sIniFile, "Daily Restart Hours? 00-23", "HotHour4", $HotHour4)
IniWrite($sIniFile, "Daily Restart Hours? 00-23", "HotHour5", $HotHour5)
IniWrite($sIniFile, "Daily Restart Hours? 00-23", "HotHour6", $HotHour6)
IniWrite($sIniFile, "Daily Restart Minute? 00-59", "HotMin", $HotMin)
IniWrite($sIniFile, "Restart Server Daily? yes/no", "RestartDaily", $g_sRestartDaily)
IniWrite($sIniFile, "Daily Restart Hours Comma Seperated 0=Everyday Sunday=1 Saturday=7 0-7", "RestartDays", $g_sRestartDays)
IniWrite($sIniFile, "Daily Restart Hours Comma Seperated 00-23", "RestartHours", $g_sRestartHours)
IniWrite($sIniFile, "Daily Restart Minute 00-59", "RestartMinute", $g_sRestartMin)
IniWrite($sIniFile, "Excessive Memory Amount?", "ExMem", $ExMem)
IniWrite($sIniFile, "Restart On Excessive Memory Use? yes/no", "ExMemRestart", $ExMemRestart)
IniWrite($sIniFile, "Running Server with Steam Open? (yes/no)", "SteamFix", $SteamFix)
Expand Down

0 comments on commit e6fb312

Please sign in to comment.