update
This commit is contained in:
@@ -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)
|
|
||||||
}
|
|
||||||
+1
-53
@@ -2,9 +2,7 @@ package core
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
|
||||||
"regexp"
|
"regexp"
|
||||||
"runtime"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/cdle/sillyGirl/im"
|
"github.com/cdle/sillyGirl/im"
|
||||||
@@ -32,57 +30,7 @@ var name = func() string {
|
|||||||
return sillyGirl.Get("name", "傻妞")
|
return sillyGirl.Get("name", "傻妞")
|
||||||
}
|
}
|
||||||
|
|
||||||
var functions = []Function{
|
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 Senders chan im.Sender
|
var Senders chan im.Sender
|
||||||
|
|
||||||
|
|||||||
+57
@@ -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
|
||||||
|
}
|
||||||
@@ -9,6 +9,42 @@ import (
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
AddCommand("", []Function{
|
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 ^命令$"},
|
Rules: []string{"raw ^命令$"},
|
||||||
Handle: func(_ im.Sender) interface{} {
|
Handle: func(_ im.Sender) interface{} {
|
||||||
|
|||||||
Reference in New Issue
Block a user