Files
BitSrunLoginGo/controllers/guardian.go
2021-07-11 13:53:23 +08:00

49 lines
924 B
Go

package controllers
import (
"autoLogin/global"
"autoLogin/util"
"os"
"os/exec"
"time"
)
func Guardian(output bool) {
var c = make(chan bool)
for {
global.Status.Output = output
time.Sleep(time.Duration(global.Config.Settings.Guardian) * time.Second)
go func() {
defer func() {
_ = recover()
}()
if !util.Checker.NetOk() {
util.Log.Println("Network down, trying to login")
_ = Login(false)
} else {
if global.Config.Settings.DemoMode {
util.Log.Println("Network ok")
}
}
c <- false
}()
<-c
}
}
func EnterGuardian() {
if global.Config.Settings.Guardian != 0 {
global.Status.Guardian = true
util.Log.Println("[Guardian mode]")
if global.Config.Settings.Daemon {
if err := exec.Command(os.Args[0], "-daemon").Start(); err != nil {
util.ErrHandler(err)
return
}
util.Log.Println("[Daemon mode entered]")
return
}
Guardian(true)
}
}