feat: 重构守护入口逻辑
This commit is contained in:
@@ -21,7 +21,6 @@ func Guardian(output bool) {
|
||||
os.Exit(1)
|
||||
}
|
||||
global.Status.Output = output
|
||||
time.Sleep(time.Duration(global.Config.Settings.Guardian) * time.Second)
|
||||
go func() {
|
||||
defer func() {
|
||||
_ = recover()
|
||||
@@ -37,6 +36,7 @@ func Guardian(output bool) {
|
||||
c <- false
|
||||
}()
|
||||
<-c
|
||||
time.Sleep(time.Duration(global.Config.Settings.Guardian) * time.Second)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -15,8 +15,8 @@ func Login(output bool) error {
|
||||
util.Log.Println("Step0: 检查状态…")
|
||||
G := global.Config.Generate()
|
||||
|
||||
if !global.Status.Guardian && global.Config.Settings.QuitIfNetOk && util.Checker.NetOk() {
|
||||
util.Log.Println("网络正常,程序退出")
|
||||
if util.Checker.NetOk() {
|
||||
util.Log.Println("网络 ok")
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
13
main.go
13
main.go
@@ -4,23 +4,20 @@ import (
|
||||
"autoLogin/controllers"
|
||||
"autoLogin/global"
|
||||
"autoLogin/util"
|
||||
"os"
|
||||
)
|
||||
|
||||
func main() {
|
||||
defer util.Log.CatchRecover()
|
||||
|
||||
if err := controllers.Login(true); err != nil {
|
||||
if global.Config.Settings.Guardian != 0 {
|
||||
controllers.EnterGuardian()
|
||||
} else if err := controllers.Login(true); err != nil {
|
||||
util.Log.Println("运行出错,状态异常")
|
||||
if global.Config.Settings.ForceGuardianEvenFailed {
|
||||
util.Log.Println(err)
|
||||
} else if global.Config.Settings.DemoMode {
|
||||
if global.Config.Settings.DemoMode {
|
||||
util.Log.Fatalln(err)
|
||||
} else {
|
||||
util.Log.Println(err)
|
||||
os.Exit(3)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
controllers.EnterGuardian()
|
||||
}
|
||||
|
||||
@@ -6,12 +6,10 @@ import (
|
||||
)
|
||||
|
||||
type Settings struct {
|
||||
QuitIfNetOk bool `json:"quit_if_net_ok"`
|
||||
DemoMode bool `json:"demo_mode"`
|
||||
Dns string `json:"dns"`
|
||||
Guardian uint `json:"guardian"`
|
||||
Daemon bool `json:"daemon"`
|
||||
ForceGuardianEvenFailed bool `json:"force_guardian_even_failed"`
|
||||
DemoMode bool `json:"demo_mode"`
|
||||
Dns string `json:"dns"`
|
||||
Guardian uint `json:"guardian"`
|
||||
Daemon bool `json:"daemon"`
|
||||
}
|
||||
|
||||
type Config struct {
|
||||
|
||||
Reference in New Issue
Block a user