update
This commit is contained in:
@@ -124,7 +124,7 @@ func init() {
|
|||||||
Rules: []string{`env disable ?`},
|
Rules: []string{`env disable ?`},
|
||||||
Admin: true,
|
Admin: true,
|
||||||
Handle: func(s im.Sender) interface{} {
|
Handle: func(s im.Sender) interface{} {
|
||||||
if err := SetConfigEnv(Env{Name: s.Get(0), Status: 1}); err != nil {
|
if err := SetConfigEnv(Env{Name: s.Get(), Status: 1}); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return "操作成功"
|
return "操作成功"
|
||||||
@@ -134,7 +134,7 @@ func init() {
|
|||||||
Rules: []string{`env enable ?`},
|
Rules: []string{`env enable ?`},
|
||||||
Admin: true,
|
Admin: true,
|
||||||
Handle: func(s im.Sender) interface{} {
|
Handle: func(s im.Sender) interface{} {
|
||||||
if err := SetConfigEnv(Env{Name: s.Get(0)}); err != nil {
|
if err := SetConfigEnv(Env{Name: s.Get()}); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return "操作成功"
|
return "操作成功"
|
||||||
@@ -145,14 +145,14 @@ func init() {
|
|||||||
|
|
||||||
func GetConfig() (string, error) {
|
func GetConfig() (string, error) {
|
||||||
config := "data"
|
config := "data"
|
||||||
if err := req(CONFIG, &config, "/config.sh"); err != nil {
|
if err := Req(CONFIG, &config, "/config.sh"); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
return config, nil
|
return config, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func SvaeConfig(content string) error {
|
func SvaeConfig(content string) error {
|
||||||
if err := req(POST, CONFIG, map[string]interface{}{
|
if err := Req(POST, CONFIG, map[string]interface{}{
|
||||||
"name": "config.sh",
|
"name": "config.sh",
|
||||||
"content": content,
|
"content": content,
|
||||||
}, "/save"); err != nil {
|
}, "/save"); err != nil {
|
||||||
@@ -222,7 +222,7 @@ func SetConfigEnv(envs ...Env) error {
|
|||||||
h = "## "
|
h = "## "
|
||||||
}
|
}
|
||||||
if i <= 1 {
|
if i <= 1 {
|
||||||
h = "export "
|
h += "export "
|
||||||
}
|
}
|
||||||
lines[j] = h + fmt.Sprintf("%s=\"%s\"", e.Name, e.Value)
|
lines[j] = h + fmt.Sprintf("%s=\"%s\"", e.Name, e.Value)
|
||||||
set = true
|
set = true
|
||||||
|
|||||||
+100
-8
@@ -1,6 +1,7 @@
|
|||||||
package qinglong
|
package qinglong
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -39,7 +40,7 @@ func init() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if len(crons) == 0 {
|
if len(crons) == 0 {
|
||||||
return "没有任务"
|
return "没有任务。"
|
||||||
}
|
}
|
||||||
es := []string{}
|
es := []string{}
|
||||||
for _, cron := range crons {
|
for _, cron := range crons {
|
||||||
@@ -49,26 +50,86 @@ func init() {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Rules: []string{`cron get ?`},
|
Rules: []string{`cron status ?`},
|
||||||
Admin: true,
|
Admin: true,
|
||||||
Handle: func(s im.Sender) interface{} {
|
Handle: func(s im.Sender) interface{} {
|
||||||
name := s.Get()
|
keyword := s.Get()
|
||||||
crons, err := GetCrons("")
|
crons, err := GetCrons("")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
es := []string{}
|
es := []string{}
|
||||||
for _, cron := range crons {
|
for _, cron := range crons {
|
||||||
if cron.Name == name || regexp.MustCompile(name+"$").FindString(cron.Command) != "" {
|
if cron.ID == keyword {
|
||||||
|
es = append(es, formatCron(&cron))
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if regexp.MustCompile(keyword+"$").FindString(cron.Command) != "" {
|
||||||
es = append(es, formatCron(&cron))
|
es = append(es, formatCron(&cron))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(es) == 0 {
|
if len(es) == 0 {
|
||||||
return "找不到该任务"
|
return "找不到任务。"
|
||||||
}
|
}
|
||||||
return strings.Join(es, "\n\n")
|
return strings.Join(es, "\n\n")
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
Rules: []string{`cron run ?`},
|
||||||
|
Admin: true,
|
||||||
|
Handle: func(s im.Sender) interface{} {
|
||||||
|
cron, err := GetCronID(s.Get())
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := Req(CRONS, PUT, "/run", []byte(fmt.Sprintf(`["%s"]`, cron.ID))); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return "操作成功"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Rules: []string{`cron stop ?`},
|
||||||
|
Admin: true,
|
||||||
|
Handle: func(s im.Sender) interface{} {
|
||||||
|
cron, err := GetCronID(s.Get())
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := Req(CRONS, PUT, "/stop", []byte(fmt.Sprintf(`["%s"]`, cron.ID))); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return "操作成功"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Rules: []string{`cron enable ?`},
|
||||||
|
Admin: true,
|
||||||
|
Handle: func(s im.Sender) interface{} {
|
||||||
|
cron, err := GetCronID(s.Get())
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := Req(CRONS, PUT, "/enable", []byte(fmt.Sprintf(`["%s"]`, cron.ID))); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return "操作成功"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Rules: []string{`cron disable ?`},
|
||||||
|
Admin: true,
|
||||||
|
Handle: func(s im.Sender) interface{} {
|
||||||
|
cron, err := GetCronID(s.Get())
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := Req(CRONS, PUT, "/disable", []byte(fmt.Sprintf(`["%s"]`, cron.ID))); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return "操作成功"
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
Rules: []string{`cron find ?`},
|
Rules: []string{`cron find ?`},
|
||||||
Admin: true,
|
Admin: true,
|
||||||
@@ -94,7 +155,11 @@ func init() {
|
|||||||
Rules: []string{`cron logs ?`},
|
Rules: []string{`cron logs ?`},
|
||||||
Admin: true,
|
Admin: true,
|
||||||
Handle: func(s im.Sender) interface{} {
|
Handle: func(s im.Sender) interface{} {
|
||||||
data, err := GetCronLog(s.Get())
|
cron, err := GetCronID(s.Get())
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
data, err := GetCronLog(cron.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -106,7 +171,7 @@ func init() {
|
|||||||
|
|
||||||
func GetCrons(searchValue string) ([]Cron, error) {
|
func GetCrons(searchValue string) ([]Cron, error) {
|
||||||
er := CronResponse{}
|
er := CronResponse{}
|
||||||
if err := req(CRONS, &er, "?searchValue="+searchValue); err != nil {
|
if err := Req(CRONS, &er, "?searchValue="+searchValue); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return er.Data, nil
|
return er.Data, nil
|
||||||
@@ -116,7 +181,7 @@ func GetCronLog(id string) (string, error) {
|
|||||||
c := &Carrier{
|
c := &Carrier{
|
||||||
Get: "data",
|
Get: "data",
|
||||||
}
|
}
|
||||||
if err := req(CRONS, "/"+id+"/log", c); err != nil {
|
if err := Req(CRONS, "/"+id+"/log", c); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
return c.Value, nil
|
return c.Value, nil
|
||||||
@@ -138,3 +203,30 @@ func formatCron(cron *Cron) string {
|
|||||||
fmt.Sprintf("状态:%v", status),
|
fmt.Sprintf("状态:%v", status),
|
||||||
}, "\n")
|
}, "\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetCronID(keyword string) (*Cron, error) {
|
||||||
|
crons, err := GetCrons("")
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
cs := []Cron{}
|
||||||
|
for _, cron := range crons {
|
||||||
|
if cron.ID == keyword {
|
||||||
|
cs = append(cs, cron)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if cron.Name == keyword {
|
||||||
|
cs = append(cs, cron)
|
||||||
|
}
|
||||||
|
if regexp.MustCompile(keyword+"$").FindString(cron.Command) != "" {
|
||||||
|
cs = append(cs, cron)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if len(cs) == 0 {
|
||||||
|
return nil, errors.New("找不到任务。")
|
||||||
|
}
|
||||||
|
if len(cs) != 1 {
|
||||||
|
return nil, errors.New("搜索到多个任务,请再具体一些!")
|
||||||
|
}
|
||||||
|
return &cs[0], nil
|
||||||
|
}
|
||||||
|
|||||||
+10
-13
@@ -14,17 +14,16 @@ type Env struct {
|
|||||||
ID string `json:"_id,omitempty"`
|
ID string `json:"_id,omitempty"`
|
||||||
Status int `json:"status,omitempty"`
|
Status int `json:"status,omitempty"`
|
||||||
Name string `json:"name,omitempty"`
|
Name string `json:"name,omitempty"`
|
||||||
Timestamp string `json:"timestamp,omitempty"`
|
|
||||||
Remarks string `json:"remarks,omitempty"`
|
Remarks string `json:"remarks,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetEnv(name string) (*Env, error) {
|
func GetEnv(id string) (*Env, error) {
|
||||||
envs, err := GetEnvs("")
|
envs, err := GetEnvs("")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for _, env := range envs {
|
for _, env := range envs {
|
||||||
if env.Name == name {
|
if env.ID == id {
|
||||||
return &env, nil
|
return &env, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -33,13 +32,13 @@ func GetEnv(name string) (*Env, error) {
|
|||||||
|
|
||||||
func GetEnvs(searchValue string) ([]Env, error) {
|
func GetEnvs(searchValue string) ([]Env, error) {
|
||||||
er := EnvResponse{}
|
er := EnvResponse{}
|
||||||
if err := req(ENVS, &er, "?searchValue="+searchValue); err != nil {
|
if err := Req(ENVS, &er, "?searchValue="+searchValue); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return er.Data, nil
|
return er.Data, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetEnv(e *Env) error {
|
func SetEnv(e Env) error {
|
||||||
envs, err := GetEnvs("")
|
envs, err := GetEnvs("")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -55,14 +54,13 @@ func SetEnv(e *Env) error {
|
|||||||
if e.Name != "" {
|
if e.Name != "" {
|
||||||
env.Name = e.Name
|
env.Name = e.Name
|
||||||
}
|
}
|
||||||
env.Timestamp = ""
|
return Req(PUT, ENVS, env)
|
||||||
return req(PUT, ENVS, env)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return AddEnv(e)
|
return AddEnv(e)
|
||||||
}
|
}
|
||||||
|
|
||||||
func ModEnv(e *Env) error {
|
func ModEnv(e Env) error {
|
||||||
envs, err := GetEnvs("")
|
envs, err := GetEnvs("")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -78,17 +76,16 @@ func ModEnv(e *Env) error {
|
|||||||
if e.Name != "" {
|
if e.Name != "" {
|
||||||
env.Name = e.Name
|
env.Name = e.Name
|
||||||
}
|
}
|
||||||
env.Timestamp = ""
|
return Req(PUT, ENVS, env)
|
||||||
return req(PUT, ENVS, env)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return errors.New("找不到环境变量")
|
return errors.New("找不到环境变量")
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddEnv(e *Env) error {
|
func AddEnv(e Env) error {
|
||||||
return req(POST, ENVS, []Env{*e})
|
return Req(POST, ENVS, []Env{e})
|
||||||
}
|
}
|
||||||
|
|
||||||
func RemEnv(e *Env) error {
|
func RemEnv(e *Env) error {
|
||||||
return req(DELETE, ENVS, []byte(`["`+e.ID+`"]`))
|
return Req(DELETE, ENVS, []byte(`["`+e.ID+`"]`))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ func getToken() (string, error) {
|
|||||||
return token, nil
|
return token, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func req(ps ...interface{}) error {
|
func Req(ps ...interface{}) error {
|
||||||
token, err := getToken()
|
token, err := getToken()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
Submodule
+1
Submodule jd_cookie added at 23a9ef914d
Reference in New Issue
Block a user