From 7dccdacd34f4be800579abe33edec1ce7ef6db7c Mon Sep 17 00:00:00 2001 From: cdle <798731886@qq.com> Date: Thu, 2 Sep 2021 12:31:47 +0800 Subject: [PATCH] update --- core/function.go | 4 +++ develop/qinglong/env.go | 63 +++++++++++++++++++++++++++++++++++----- develop/qinglong/init.go | 6 ++-- 3 files changed, 62 insertions(+), 11 deletions(-) diff --git a/core/function.go b/core/function.go index d6cc696..659b033 100644 --- a/core/function.go +++ b/core/function.go @@ -5,6 +5,7 @@ import ( "os" "os/exec" "regexp" + "runtime" "strings" "github.com/beego/beego/v2/core/logs" @@ -39,6 +40,9 @@ var functions = []Function{ Rules: []string{"^升级$"}, Admin: true, Handle: func(s im.Sender) interface{} { + if runtime.GOOS == "darwin" { + return "沙雕。" + } s.Reply("傻妞开始拉取代码。") rtn, err := exec.Command("sh", "-c", "cd "+ExecPath+" && git stash && git pull").Output() if err != nil { diff --git a/develop/qinglong/env.go b/develop/qinglong/env.go index 6628c21..fe9efd8 100644 --- a/develop/qinglong/env.go +++ b/develop/qinglong/env.go @@ -1,6 +1,7 @@ package qinglong import ( + "errors" "fmt" "strings" @@ -25,7 +26,7 @@ type Env struct { func init() { core.AddCommand([]core.Function{ { - Rules: []string{`^env\s+get\s+([\S]*)$`}, + Rules: []string{`^env\s+get\s+([\S]+)$`}, Handle: func(s im.Sender) interface{} { m := s.Get() env, err := GetEnv(m) @@ -42,7 +43,7 @@ func init() { }, }, { - Rules: []string{`^env\s+find\s+([\S]*)$`}, + Rules: []string{`^env\s+find\s+([\S]+)$`}, Handle: func(s im.Sender) interface{} { m := s.Get() envs, err := GetEnvs(m) @@ -74,7 +75,7 @@ func init() { }, }, { - Rules: []string{`^env\s+del\s+([\S]*)$`}, + Rules: []string{`^env\s+del\s+([\S]+)$`}, Handle: func(s im.Sender) interface{} { if err := RemEnv(&Env{ID: s.Get()}); err != nil { return err @@ -82,6 +83,15 @@ func init() { return "操作成功" }, }, + { + Rules: []string{`^env\s+remark\s+([\S]+)\s+([\S]+)$`}, + Handle: func(s im.Sender) interface{} { + if err := ModEnv(&Env{ID: s.Get(0), Remarks: s.Get(1)}); err != nil { + return err + } + return "操作成功" + }, + }, }) } @@ -106,15 +116,52 @@ func GetEnvs(searchValue string) ([]Env, error) { } func SetEnv(e *Env) error { - es, err := GetEnvs(e.Name) + if e.Name == "JD_COOKIE" { + return errors.New("不支持的操作") + } + envs, err := GetEnvs("") if err != nil { return err } - if len(es) == 0 { - return AddEnv(e) + for _, env := range envs { + if env.Name == e.Name { + if e.Remarks != "" { + env.Remarks = e.Remarks + } + if e.Value != "" { + env.Value = e.Value + } + if e.Name != "" { + env.Name = e.Name + } + env.Timestamp = "" + return req(PUT, ENVS, env) + } } - e.ID = es[0].ID - return req(PUT, ENVS, *e) + return AddEnv(e) +} + +func ModEnv(e *Env) error { + envs, err := GetEnvs("") + if err != nil { + return err + } + for _, env := range envs { + if env.ID == e.ID { + if e.Remarks != "" { + env.Remarks = e.Remarks + } + if e.Value != "" { + env.Value = e.Value + } + if e.Name != "" { + env.Name = e.Name + } + env.Timestamp = "" + return req(PUT, ENVS, env) + } + } + return errors.New("找不到环境变量") } func AddEnv(e *Env) error { diff --git a/develop/qinglong/init.go b/develop/qinglong/init.go index 1ae9e3c..c10f356 100644 --- a/develop/qinglong/init.go +++ b/develop/qinglong/init.go @@ -108,9 +108,9 @@ func req(ps ...interface{}) error { if method != GET { req.Body(body) } - // fmt.Println(Config.Host + "/open/" + api) - // fmt.Println(method) - // fmt.Println(string(body)) + fmt.Println(Config.Host + "/open/" + api) + fmt.Println(method) + fmt.Println(string(body)) req.Body(body) data, err := req.Bytes() if err != nil {