From 0986d5baf08466c3fe20156f37bc6768ad701614 Mon Sep 17 00:00:00 2001 From: cdle <798731886@qq.com> Date: Fri, 17 Sep 2021 06:41:26 +0800 Subject: [PATCH] update --- core/deamon.go | 29 ------------------------ core/function.go | 54 +-------------------------------------------- core/sys.go | 57 ++++++++++++++++++++++++++++++++++++++++++++++++ core/test.go | 36 ++++++++++++++++++++++++++++++ 4 files changed, 94 insertions(+), 82 deletions(-) delete mode 100644 core/deamon.go create mode 100644 core/sys.go diff --git a/core/deamon.go b/core/deamon.go deleted file mode 100644 index 167ad3e..0000000 --- a/core/deamon.go +++ /dev/null @@ -1,29 +0,0 @@ -package core - -import ( - "os" - "os/exec" - "strings" - - "github.com/astaxie/beego/logs" -) - -func Daemon() { - args := os.Args[1:] - execArgs := make([]string, 0) - l := len(args) - for i := 0; i < l; i++ { - if strings.Index(args[i], "-d") == 0 { - continue - } - - execArgs = append(execArgs, args[i]) - } - proc := exec.Command(os.Args[0], execArgs...) - err := proc.Start() - if err != nil { - panic(err) - } - logs.Info("傻妞以静默形式运行") - os.Exit(0) -} diff --git a/core/function.go b/core/function.go index 127b16c..c6e50ca 100644 --- a/core/function.go +++ b/core/function.go @@ -2,9 +2,7 @@ package core import ( "os" - "os/exec" "regexp" - "runtime" "strings" "github.com/cdle/sillyGirl/im" @@ -32,57 +30,7 @@ var name = func() string { return sillyGirl.Get("name", "傻妞") } -var functions = []Function{ - { - Rules: []string{"^name$"}, - Handle: func(_ im.Sender) interface{} { - return name() - }, - }, - { - Rules: []string{"^升级$"}, - Admin: true, - Handle: func(s im.Sender) interface{} { - if runtime.GOOS == "darwin" { - return "沙雕。" - } - s.Reply(name() + "开始拉取代码。") - rtn, err := exec.Command("sh", "-c", "cd "+ExecPath+" && git stash && git pull").Output() - if err != nil { - return name() + "拉取代失败:" + err.Error() + "。" - } - t := string(rtn) - if !strings.Contains(t, "changed") { - if strings.Contains(t, "Already") || strings.Contains(t, "已经是最新") { - return name() + "已是最新版啦。" - } else { - return name() + "拉取代失败:" + t + "。" - } - } else { - s.Reply(name() + "拉取代码成功。") - } - s.Reply(name() + "正在编译程序。") - rtn, err = exec.Command("sh", "-c", "cd "+ExecPath+" && go build -o "+pname).Output() - if err != nil { - return name() + "编译失败:" + err.Error() - } else { - s.Reply(name() + "编译成功。") - } - s.Reply(name() + "重启程序。") - Daemon() - return nil - }, - }, - { - Rules: []string{"^重启$"}, - Admin: true, - Handle: func(s im.Sender) interface{} { - s.Reply(name() + "重启程序。") - Daemon() - return nil - }, - }, -} +var functions = []Function{} var Senders chan im.Sender diff --git a/core/sys.go b/core/sys.go new file mode 100644 index 0000000..666e001 --- /dev/null +++ b/core/sys.go @@ -0,0 +1,57 @@ +package core + +import ( + "errors" + "os" + "os/exec" + "runtime" + "strings" + + "github.com/astaxie/beego/logs" +) + +func Daemon() { + args := os.Args[1:] + execArgs := make([]string, 0) + l := len(args) + for i := 0; i < l; i++ { + if strings.Index(args[i], "-d") == 0 { + continue + } + execArgs = append(execArgs, args[i]) + } + proc := exec.Command(os.Args[0], execArgs...) + err := proc.Start() + if err != nil { + panic(err) + } + logs.Info(sillyGirl.Get("name", "傻妞") + "以静默形式运行") + os.Exit(0) +} + +func GitPull(filename string) (bool, error) { + if runtime.GOOS == "darwin" { + return false, errors.New("骂你一句沙雕。") + } + rtn, err := exec.Command("sh", "-c", "cd "+ExecPath+filename+" && git stash && git pull").Output() + if err != nil { + return false, errors.New("拉取代失败:" + err.Error() + "。") + } + t := string(rtn) + if !strings.Contains(t, "changed") { + if strings.Contains(t, "Already") || strings.Contains(t, "已经是最新") { + return false, nil + } else { + return false, errors.New("拉取代失败:" + t + "。") + } + } + return true, nil +} + +func CompileCode() error { + _, err := exec.Command("sh", "-c", "cd "+ExecPath+" && go build -o "+pname).Output() + if err != nil { + return errors.New("编译失败:" + err.Error() + "。") + } + return nil +} diff --git a/core/test.go b/core/test.go index ef8b869..4aff93a 100644 --- a/core/test.go +++ b/core/test.go @@ -9,6 +9,42 @@ import ( func init() { AddCommand("", []Function{ + { + Rules: []string{"raw ^name$"}, + Handle: func(_ im.Sender) interface{} { + return name() + }, + }, + { + Rules: []string{"raw ^升级$"}, + Admin: true, + Handle: func(s im.Sender) interface{} { + s.Reply(name() + "开始拉取代码。") + need, err := GitPull("") + if err != nil { + return err + } + if !need { + return name() + "已是最新版。" + } + s.Reply(name() + "开始拉取成功。") + s.Reply(name() + "正在编译程序。") + if err := CompileCode(); err != nil { + return err + } + s.Reply(name() + "编译程序完毕。") + Daemon() + return nil + }, + }, + { + Rules: []string{"raw ^重启$"}, + Admin: true, + Handle: func(_ im.Sender) interface{} { + Daemon() + return nil + }, + }, { Rules: []string{"raw ^命令$"}, Handle: func(_ im.Sender) interface{} {