mirror of
https://shylinux.com/x/icebergs
synced 2025-05-01 03:09:21 +08:00
opt route
This commit is contained in:
parent
dc686729a2
commit
2353f80ce2
@ -63,6 +63,8 @@ func IsLocalHost(m *ice.Message, ip string) bool { return _islocalhost(m, ip) }
|
|||||||
const (
|
const (
|
||||||
HOSTPORT = "hostport"
|
HOSTPORT = "hostport"
|
||||||
HOSTNAME = "hostname"
|
HOSTNAME = "hostname"
|
||||||
|
|
||||||
|
LOCALHOST = "localhost"
|
||||||
)
|
)
|
||||||
const HOST = "host"
|
const HOST = "host"
|
||||||
|
|
||||||
|
@ -66,13 +66,16 @@ func _dream_show(m *ice.Message, name string) {
|
|||||||
// 启动任务
|
// 启动任务
|
||||||
m.Optionv(cli.CMD_STDERR, path.Join(p, m.Conf(DREAM, "meta.env.ctx_log")))
|
m.Optionv(cli.CMD_STDERR, path.Join(p, m.Conf(DREAM, "meta.env.ctx_log")))
|
||||||
m.Cmd(cli.DAEMON, m.Confv(DREAM, "meta.cmd"), "self", name)
|
m.Cmd(cli.DAEMON, m.Confv(DREAM, "meta.cmd"), "self", name)
|
||||||
|
m.Event(DREAM_CREATE, kit.MDB_TYPE, m.Option(kit.MDB_TYPE), kit.MDB_NAME, name)
|
||||||
|
m.Sleep("1s")
|
||||||
}
|
}
|
||||||
m.Cmdy(nfs.DIR, p)
|
m.Cmdy(nfs.DIR, p)
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
DREAM_START = "dream.start"
|
DREAM_CREATE = "dream.create"
|
||||||
DREAM_STOP = "dream.stop"
|
DREAM_START = "dream.start"
|
||||||
|
DREAM_STOP = "dream.stop"
|
||||||
)
|
)
|
||||||
const DREAM = "dream"
|
const DREAM = "dream"
|
||||||
|
|
||||||
|
@ -64,6 +64,12 @@ func init() {
|
|||||||
m.Cmdy("web.wiki.image", "qrcode", m.Option(ice.MSG_USERWEB))
|
m.Cmdy("web.wiki.image", "qrcode", m.Option(ice.MSG_USERWEB))
|
||||||
}},
|
}},
|
||||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
switch m.Option("action") {
|
||||||
|
case "autogen":
|
||||||
|
m.Cmdy(SPACE, m.Option(ROUTE), "web.code.autogen", "inputs", arg)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
switch arg[0] {
|
switch arg[0] {
|
||||||
case "cmd":
|
case "cmd":
|
||||||
m.Cmdy(SPACE, m.Option(ROUTE), ctx.COMMAND)
|
m.Cmdy(SPACE, m.Option(ROUTE), ctx.COMMAND)
|
||||||
@ -82,9 +88,8 @@ func init() {
|
|||||||
m.Cmdy(SPACE, m.Option(ROUTE), "exit")
|
m.Cmdy(SPACE, m.Option(ROUTE), "exit")
|
||||||
m.Sleep("3s")
|
m.Sleep("3s")
|
||||||
}},
|
}},
|
||||||
"gen": {Name: "gen module=hi@key template=usr/icebergs/misc/zsh/zsh.go@key", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
"autogen": {Name: "autogen main=src/main.go@key name=hi@key from=usr/icebergs/misc/bash/bash.go@key", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(SPACE, m.Option(ROUTE), "web.code.autogen",
|
m.Cmdy(SPACE, m.Option(ROUTE), "web.code.autogen", "create", arg)
|
||||||
"create", "name", m.Option("module"), "from", m.Option("template"))
|
|
||||||
}},
|
}},
|
||||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
if len(arg) == 0 || arg[0] == "" {
|
if len(arg) == 0 || arg[0] == "" {
|
||||||
@ -102,7 +107,7 @@ func init() {
|
|||||||
case SERVER:
|
case SERVER:
|
||||||
m.PushButton(gdb.START)
|
m.PushButton(gdb.START)
|
||||||
case WORKER:
|
case WORKER:
|
||||||
m.PushButton(gdb.STOP)
|
m.PushButton("autogen")
|
||||||
default:
|
default:
|
||||||
m.PushButton("")
|
m.PushButton("")
|
||||||
}
|
}
|
||||||
@ -132,7 +137,7 @@ func init() {
|
|||||||
} else if len(arg) > 2 { // 加载插件
|
} else if len(arg) > 2 { // 加载插件
|
||||||
m.Cmdy(SPACE, arg[0], ctx.CONTEXT, arg[1], ctx.COMMAND, arg[2])
|
m.Cmdy(SPACE, arg[0], ctx.CONTEXT, arg[1], ctx.COMMAND, arg[2])
|
||||||
m.Option("_prefix", arg[0], arg[1], arg[2], "run")
|
m.Option("_prefix", arg[0], arg[1], arg[2], "run")
|
||||||
m.Option("_process", "_field")
|
m.Option(ice.MSG_PROCESS, ice.PROCESS_FIELD)
|
||||||
|
|
||||||
} else if len(arg) > 1 { // 命令列表
|
} else if len(arg) > 1 { // 命令列表
|
||||||
m.Cmd(SPACE, arg[0], ctx.CONTEXT, arg[1], ctx.COMMAND).Table(func(index int, value map[string]string, head []string) {
|
m.Cmd(SPACE, arg[0], ctx.CONTEXT, arg[1], ctx.COMMAND).Table(func(index int, value map[string]string, head []string) {
|
||||||
|
@ -2,6 +2,7 @@ package code
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
ice "github.com/shylinux/icebergs"
|
ice "github.com/shylinux/icebergs"
|
||||||
|
"github.com/shylinux/icebergs/base/cli"
|
||||||
"github.com/shylinux/icebergs/base/mdb"
|
"github.com/shylinux/icebergs/base/mdb"
|
||||||
"github.com/shylinux/icebergs/base/nfs"
|
"github.com/shylinux/icebergs/base/nfs"
|
||||||
kit "github.com/shylinux/toolkits"
|
kit "github.com/shylinux/toolkits"
|
||||||
@ -60,7 +61,7 @@ func _autogen_mod(m *ice.Message, file string) (mod string) {
|
|||||||
m.Option(nfs.CAT_CB, func(line string, index int) {
|
m.Option(nfs.CAT_CB, func(line string, index int) {
|
||||||
if strings.HasPrefix(line, "module") {
|
if strings.HasPrefix(line, "module") {
|
||||||
mod = strings.Split(line, " ")[1]
|
mod = strings.Split(line, " ")[1]
|
||||||
m.Info("module", mod)
|
m.Info("module %s", mod)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
m.Cmd(nfs.CAT, "go.mod")
|
m.Cmd(nfs.CAT, "go.mod")
|
||||||
@ -81,7 +82,7 @@ field "{{.Option "name"}}" web.code.{{.Option "name"}}.{{.Option "name"}}
|
|||||||
},
|
},
|
||||||
Commands: map[string]*ice.Command{
|
Commands: map[string]*ice.Command{
|
||||||
AUTOGEN: {Name: "autogen path auto create", Help: "生成", Action: map[string]*ice.Action{
|
AUTOGEN: {Name: "autogen path auto create", Help: "生成", Action: map[string]*ice.Action{
|
||||||
mdb.CREATE: {Name: "create main=src/main.go@key name=hi@key from=usr/icebergs/misc/zsh/zsh.go@key", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
mdb.CREATE: {Name: "create main=src/main.go@key name=hi@key from=usr/icebergs/misc/bash/bash.go@key", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
||||||
if p := path.Join("src", m.Option("name"), m.Option("name")+".shy"); !kit.FileExists(p) {
|
if p := path.Join("src", m.Option("name"), m.Option("name")+".shy"); !kit.FileExists(p) {
|
||||||
_autogen_script(m, p)
|
_autogen_script(m, p)
|
||||||
_autogen_source(m, m.Option("name"))
|
_autogen_source(m, m.Option("name"))
|
||||||
@ -91,15 +92,18 @@ field "{{.Option "name"}}" web.code.{{.Option "name"}}.{{.Option "name"}}
|
|||||||
_autogen_index(m, p, m.Option("from"), m.Option("name"))
|
_autogen_index(m, p, m.Option("from"), m.Option("name"))
|
||||||
_autogen_main(m, m.Option("main"), _autogen_mod(m, "go.mod"), m.Option("name"))
|
_autogen_main(m, m.Option("main"), _autogen_mod(m, "go.mod"), m.Option("name"))
|
||||||
}
|
}
|
||||||
|
m.Cmdy(cli.SYSTEM, "make")
|
||||||
}},
|
}},
|
||||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||||
switch arg[0] {
|
switch arg[0] {
|
||||||
case "main":
|
case "main":
|
||||||
|
m.Option(nfs.DIR_REG, ".*.go")
|
||||||
m.Cmdy(nfs.DIR, "src", "path,size,time")
|
m.Cmdy(nfs.DIR, "src", "path,size,time")
|
||||||
m.Sort(kit.MDB_PATH)
|
m.Sort(kit.MDB_PATH)
|
||||||
case "from":
|
case "from":
|
||||||
m.Option(nfs.DIR_DEEP, true)
|
m.Option(nfs.DIR_DEEP, true)
|
||||||
m.Cmdy(nfs.DIR, "usr/icebergs", "path,size,time")
|
m.Option(nfs.DIR_REG, ".*.go")
|
||||||
|
m.Cmdy(nfs.DIR, "usr/icebergs/misc/", "path,size,time")
|
||||||
m.Sort(kit.MDB_PATH)
|
m.Sort(kit.MDB_PATH)
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
|
@ -16,6 +16,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const PREPARE = "prepare"
|
||||||
const INSTALL = "install"
|
const INSTALL = "install"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
8
init.go
8
init.go
@ -101,6 +101,9 @@ var Index = &Context{Name: "ice", Help: "冰山模块",
|
|||||||
})
|
})
|
||||||
}},
|
}},
|
||||||
"init": {Name: "init", Help: "启动", Hand: func(m *Message, c *Context, cmd string, arg ...string) {
|
"init": {Name: "init", Help: "启动", Hand: func(m *Message, c *Context, cmd string, arg ...string) {
|
||||||
|
if m.target != m.target.root {
|
||||||
|
return
|
||||||
|
}
|
||||||
m.root.Cmd(CTX_INIT)
|
m.root.Cmd(CTX_INIT)
|
||||||
m.target.root.wg = &sync.WaitGroup{}
|
m.target.root.wg = &sync.WaitGroup{}
|
||||||
for _, k := range kit.Split(kit.Select("gdb,log,ssh,mdb")) {
|
for _, k := range kit.Split(kit.Select("gdb,log,ssh,mdb")) {
|
||||||
@ -112,7 +115,10 @@ var Index = &Context{Name: "ice", Help: "冰山模块",
|
|||||||
"help": {Name: "help", Help: "帮助", Hand: func(m *Message, c *Context, cmd string, arg ...string) {
|
"help": {Name: "help", Help: "帮助", Hand: func(m *Message, c *Context, cmd string, arg ...string) {
|
||||||
m.Echo(strings.Join(kit.Simple(m.Confv("help", "index")), "\n"))
|
m.Echo(strings.Join(kit.Simple(m.Confv("help", "index")), "\n"))
|
||||||
}},
|
}},
|
||||||
"exit": {Name: "exit", Help: "结束", Hand: func(m *Message, c *Context, cmd string, arg ...string) {
|
"exit": {Name: "exit restart:button", Help: "结束", Action: map[string]*Action{
|
||||||
|
"restart": {Name: "restart", Help: "重启", Hand: func(m *Message, arg ...string) {
|
||||||
|
}},
|
||||||
|
}, Hand: func(m *Message, c *Context, cmd string, arg ...string) {
|
||||||
m.root.target.server.(*Frame).code = kit.Int(kit.Select("0", arg, 0))
|
m.root.target.server.(*Frame).code = kit.Int(kit.Select("0", arg, 0))
|
||||||
m.Cmd("ssh.source", "etc/exit.shy", "exit.shy", "退出配置")
|
m.Cmd("ssh.source", "etc/exit.shy", "exit.shy", "退出配置")
|
||||||
m.root.Cmd(CTX_EXIT)
|
m.root.Cmd(CTX_EXIT)
|
||||||
|
10
misc.go
10
misc.go
@ -21,17 +21,17 @@ func (m *Message) Save(arg ...string) *Message {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
for _, k := range arg {
|
for _, k := range arg {
|
||||||
list = append(list, kit.Keys(m.Cap(CTX_FOLLOW), k))
|
list = append(list, m.Prefix(k))
|
||||||
}
|
}
|
||||||
m.Cmd("ctx.config", "save", kit.Keys(m.Cap(CTX_FOLLOW), "json"), list)
|
m.Cmd("ctx.config", "save", m.Prefix("json"), list)
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
func (m *Message) Load(arg ...string) *Message {
|
func (m *Message) Load(arg ...string) *Message {
|
||||||
list := []string{}
|
list := []string{}
|
||||||
for _, k := range arg {
|
for _, k := range arg {
|
||||||
list = append(list, kit.Keys(m.Cap(CTX_FOLLOW), k))
|
list = append(list, m.Prefix(k))
|
||||||
}
|
}
|
||||||
m.Cmd("ctx.config", "load", kit.Keys(m.Cap(CTX_FOLLOW), "json"), list)
|
m.Cmd("ctx.config", "load", m.Prefix("json"), list)
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,7 +57,7 @@ func (m *Message) Space(arg interface{}) []string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *Message) PushPlugin(key string, arg ...string) *Message {
|
func (m *Message) PushPlugin(key string, arg ...string) *Message {
|
||||||
m.Option("_process", "_field")
|
m.Option(MSG_PROCESS, PROCESS_FIELD)
|
||||||
m.Option("_prefix", arg)
|
m.Option("_prefix", arg)
|
||||||
m.Cmdy("command", key)
|
m.Cmdy("command", key)
|
||||||
return m
|
return m
|
||||||
|
@ -12,6 +12,12 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func _repos_path(name string) string {
|
||||||
|
if wd, _ := os.Getwd(); name != path.Base(wd) {
|
||||||
|
return path.Join("usr", name)
|
||||||
|
}
|
||||||
|
return "./"
|
||||||
|
}
|
||||||
func _repos_insert(m *ice.Message, name string, dir string) {
|
func _repos_insert(m *ice.Message, name string, dir string) {
|
||||||
if s, e := os.Stat(m.Option(cli.CMD_DIR, path.Join(dir, ".git"))); e == nil && s.IsDir() {
|
if s, e := os.Stat(m.Option(cli.CMD_DIR, path.Join(dir, ".git"))); e == nil && s.IsDir() {
|
||||||
ls := strings.SplitN(strings.Trim(m.Cmdx(cli.SYSTEM, GIT, "log", "-n1", `--pretty=format:"%ad %s"`, "--date=iso"), "\""), " ", 4)
|
ls := strings.SplitN(strings.Trim(m.Cmdx(cli.SYSTEM, GIT, "log", "-n1", `--pretty=format:"%ad %s"`, "--date=iso"), "\""), " ", 4)
|
||||||
@ -29,7 +35,6 @@ const (
|
|||||||
ORIGIN = "origin"
|
ORIGIN = "origin"
|
||||||
BRANCH = "branch"
|
BRANCH = "branch"
|
||||||
MASTER = "master"
|
MASTER = "master"
|
||||||
COMMIT = "commit"
|
|
||||||
)
|
)
|
||||||
const REPOS = "repos"
|
const REPOS = "repos"
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import (
|
|||||||
ice "github.com/shylinux/icebergs"
|
ice "github.com/shylinux/icebergs"
|
||||||
"github.com/shylinux/icebergs/base/cli"
|
"github.com/shylinux/icebergs/base/cli"
|
||||||
"github.com/shylinux/icebergs/base/mdb"
|
"github.com/shylinux/icebergs/base/mdb"
|
||||||
|
"github.com/shylinux/icebergs/core/code"
|
||||||
kit "github.com/shylinux/toolkits"
|
kit "github.com/shylinux/toolkits"
|
||||||
|
|
||||||
"path"
|
"path"
|
||||||
@ -11,14 +12,18 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
PULL = "pull"
|
PULL = "pull"
|
||||||
|
COMPILE = "compile"
|
||||||
|
ADD = "add"
|
||||||
|
COMMIT = "commit"
|
||||||
|
PUSH = "push"
|
||||||
)
|
)
|
||||||
const STATUS = "status"
|
const STATUS = "status"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.Merge(&ice.Context{
|
Index.Merge(&ice.Context{
|
||||||
Commands: map[string]*ice.Command{
|
Commands: map[string]*ice.Command{
|
||||||
STATUS: {Name: "status name auto submit compile pull", Help: "代码状态", Action: map[string]*ice.Action{
|
STATUS: {Name: "status name auto commit compile pull", Help: "代码状态", Action: map[string]*ice.Action{
|
||||||
PULL: {Name: "pull", Help: "下载", Hand: func(m *ice.Message, arg ...string) {
|
PULL: {Name: "pull", Help: "下载", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Option(cli.PROGRESS_CB, func(cb func(name string, count, total int)) {
|
m.Option(cli.PROGRESS_CB, func(cb func(name string, count, total int)) {
|
||||||
count, total := 0, len(m.Confm(REPOS, kit.MDB_HASH))
|
count, total := 0, len(m.Confm(REPOS, kit.MDB_HASH))
|
||||||
@ -34,35 +39,26 @@ func init() {
|
|||||||
})
|
})
|
||||||
m.Cmdy(cli.PROGRESS, mdb.CREATE)
|
m.Cmdy(cli.PROGRESS, mdb.CREATE)
|
||||||
}},
|
}},
|
||||||
"compile": {Name: "compile", Help: "编译", Hand: func(m *ice.Message, arg ...string) {
|
COMPILE: {Name: "compile", Help: "编译", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(cli.SYSTEM, "make")
|
m.Cmdy(cli.SYSTEM, "make")
|
||||||
}},
|
}},
|
||||||
|
ADD: {Name: "add", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||||
"add": {Name: "add", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
m.Option(cli.CMD_DIR, _repos_path(m.Option(kit.MDB_NAME)))
|
||||||
if strings.Contains(m.Option(kit.MDB_NAME), ":\\") {
|
m.Cmdy(cli.SYSTEM, GIT, ADD, m.Option(kit.MDB_FILE))
|
||||||
m.Option(cli.CMD_DIR, m.Option(kit.MDB_NAME))
|
|
||||||
} else {
|
|
||||||
m.Option(cli.CMD_DIR, path.Join("usr", m.Option(kit.MDB_NAME)))
|
|
||||||
}
|
|
||||||
m.Cmdy(cli.SYSTEM, GIT, "add", m.Option(kit.MDB_FILE))
|
|
||||||
}},
|
}},
|
||||||
"submit": {Name: "submit action=opt,add comment=some", Help: "提交", Hand: func(m *ice.Message, arg ...string) {
|
COMMIT: {Name: "commit action=opt,add comment=some", Help: "提交", Hand: func(m *ice.Message, arg ...string) {
|
||||||
if m.Option(kit.MDB_NAME) == "" {
|
if m.Option(kit.MDB_NAME) == "" {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if strings.Contains(m.Option(kit.MDB_NAME), ":\\") {
|
m.Option(cli.CMD_DIR, _repos_path(m.Option(kit.MDB_NAME)))
|
||||||
m.Option(cli.CMD_DIR, m.Option(kit.MDB_NAME))
|
|
||||||
} else {
|
|
||||||
m.Option(cli.CMD_DIR, path.Join("usr", m.Option(kit.MDB_NAME)))
|
|
||||||
}
|
|
||||||
|
|
||||||
if arg[0] == "action" {
|
if arg[0] == "action" {
|
||||||
m.Cmdy(cli.SYSTEM, GIT, "commit", "-am", kit.Select("opt some", arg[1]+" "+arg[3]))
|
m.Cmdy(cli.SYSTEM, GIT, COMMIT, "-am", kit.Select("opt some", arg[1]+" "+arg[3]))
|
||||||
} else {
|
} else {
|
||||||
m.Cmdy(cli.SYSTEM, GIT, "commit", "-am", kit.Select("opt some", strings.Join(arg, " ")))
|
m.Cmdy(cli.SYSTEM, GIT, COMMIT, "-am", kit.Select("opt some", strings.Join(arg, " ")))
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
"push": {Name: "push", Help: "上传", Hand: func(m *ice.Message, arg ...string) {
|
PUSH: {Name: "push", Help: "上传", Hand: func(m *ice.Message, arg ...string) {
|
||||||
if m.Option(kit.MDB_NAME) == "" {
|
if m.Option(kit.MDB_NAME) == "" {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -71,7 +67,14 @@ func init() {
|
|||||||
} else {
|
} else {
|
||||||
m.Option(cli.CMD_DIR, path.Join("usr", m.Option(kit.MDB_NAME)))
|
m.Option(cli.CMD_DIR, path.Join("usr", m.Option(kit.MDB_NAME)))
|
||||||
}
|
}
|
||||||
m.Cmdy(cli.SYSTEM, GIT, "push")
|
m.Cmdy(cli.SYSTEM, GIT, PUSH)
|
||||||
|
}},
|
||||||
|
|
||||||
|
mdb.CREATE: {Name: "create main=src/main.go@key name=hi@key from=usr/icebergs/misc/bash/bash.go@key", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(code.AUTOGEN, mdb.CREATE, arg)
|
||||||
|
}},
|
||||||
|
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(code.AUTOGEN, mdb.INPUTS, arg)
|
||||||
}},
|
}},
|
||||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.Richs(REPOS, nil, kit.Select(kit.MDB_FOREACH, arg, 0), func(key string, value map[string]interface{}) {
|
m.Richs(REPOS, nil, kit.Select(kit.MDB_FOREACH, arg, 0), func(key string, value map[string]interface{}) {
|
||||||
@ -83,7 +86,7 @@ func init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 更改列表
|
// 更改列表
|
||||||
for _, v := range strings.Split(strings.TrimSpace(m.Cmdx(cli.SYSTEM, GIT, "status", "-sb")), "\n") {
|
for _, v := range strings.Split(strings.TrimSpace(m.Cmdx(cli.SYSTEM, GIT, STATUS, "-sb")), "\n") {
|
||||||
vs := strings.SplitN(strings.TrimSpace(v), " ", 2)
|
vs := strings.SplitN(strings.TrimSpace(v), " ", 2)
|
||||||
m.Push("name", value[kit.MDB_NAME])
|
m.Push("name", value[kit.MDB_NAME])
|
||||||
m.Push("tags", vs[0])
|
m.Push("tags", vs[0])
|
||||||
@ -92,14 +95,15 @@ func init() {
|
|||||||
list := []string{}
|
list := []string{}
|
||||||
switch vs[0] {
|
switch vs[0] {
|
||||||
case "##":
|
case "##":
|
||||||
|
list = append(list, mdb.CREATE)
|
||||||
if strings.Contains(vs[1], "ahead") {
|
if strings.Contains(vs[1], "ahead") {
|
||||||
list = append(list, "push")
|
list = append(list, PUSH)
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
if strings.Contains(vs[0], "??") {
|
if strings.Contains(vs[0], "??") {
|
||||||
list = append(list, "add")
|
list = append(list, ADD)
|
||||||
} else {
|
} else {
|
||||||
list = append(list, "submit")
|
list = append(list, COMMIT)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m.PushButton(strings.Join(list, ","))
|
m.PushButton(strings.Join(list, ","))
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
package lark
|
package lark
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/shylinux/icebergs"
|
ice "github.com/shylinux/icebergs"
|
||||||
"github.com/shylinux/icebergs/base/aaa"
|
"github.com/shylinux/icebergs/base/aaa"
|
||||||
"github.com/shylinux/icebergs/base/cli"
|
"github.com/shylinux/icebergs/base/cli"
|
||||||
"github.com/shylinux/icebergs/base/mdb"
|
"github.com/shylinux/icebergs/base/mdb"
|
||||||
"github.com/shylinux/icebergs/base/web"
|
"github.com/shylinux/icebergs/base/web"
|
||||||
"github.com/shylinux/icebergs/core/chat"
|
"github.com/shylinux/icebergs/core/chat"
|
||||||
"github.com/shylinux/icebergs/core/wiki"
|
"github.com/shylinux/icebergs/core/wiki"
|
||||||
"github.com/shylinux/toolkits"
|
kit "github.com/shylinux/toolkits"
|
||||||
|
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
@ -98,7 +98,7 @@ var Index = &ice.Context{Name: LARK, Help: "机器人",
|
|||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.Load()
|
m.Load()
|
||||||
m.Cmd(web.SPIDE, mdb.CREATE, LARK, m.Conf(APP, kit.Keys(kit.MDB_META, LARK)))
|
m.Cmd(web.SPIDE, mdb.CREATE, LARK, m.Conf(APP, kit.Keys(kit.MDB_META, LARK)))
|
||||||
m.Cmd(DUTY, "boot", m.Conf(cli.RUNTIME, "boot.hostname"), m.Time())
|
// m.Cmd(DUTY, "boot", m.Conf(cli.RUNTIME, "boot.hostname"), m.Time())
|
||||||
}},
|
}},
|
||||||
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.Save()
|
m.Save()
|
||||||
|
@ -52,7 +52,7 @@ var Index = &ice.Context{Name: TMUX, Help: "工作台",
|
|||||||
Commands: map[string]*ice.Command{
|
Commands: map[string]*ice.Command{
|
||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.Load()
|
m.Load()
|
||||||
m.Watch(web.DREAM_START, m.Prefix(SESSION))
|
m.Watch(web.DREAM_CREATE, m.Prefix(SESSION))
|
||||||
}},
|
}},
|
||||||
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.Save()
|
m.Save()
|
||||||
@ -161,7 +161,7 @@ var Index = &ice.Context{Name: TMUX, Help: "工作台",
|
|||||||
m.PushAction(mdb.REMOVE)
|
m.PushAction(mdb.REMOVE)
|
||||||
}},
|
}},
|
||||||
SESSION: {Name: "session session window pane cmd auto create script", Help: "会话管理", Action: map[string]*ice.Action{
|
SESSION: {Name: "session session window pane cmd auto create script", Help: "会话管理", Action: map[string]*ice.Action{
|
||||||
web.DREAM_START: {Name: "dream.start type name share river", Help: "梦想", Hand: func(m *ice.Message, arg ...string) {
|
web.DREAM_CREATE: {Name: "dream.create type name", Help: "梦想", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmd(m.Prefix(SESSION), mdb.CREATE)
|
m.Cmd(m.Prefix(SESSION), mdb.CREATE)
|
||||||
}},
|
}},
|
||||||
mdb.CREATE: {Name: "create name", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
mdb.CREATE: {Name: "create name", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||||
@ -178,7 +178,20 @@ var Index = &ice.Context{Name: TMUX, Help: "工作台",
|
|||||||
} else {
|
} else {
|
||||||
// 创建会话
|
// 创建会话
|
||||||
m.Option(cli.CMD_DIR, path.Join(m.Conf(web.DREAM, kit.META_PATH), m.Option(kit.MDB_NAME)))
|
m.Option(cli.CMD_DIR, path.Join(m.Conf(web.DREAM, kit.META_PATH), m.Option(kit.MDB_NAME)))
|
||||||
m.Cmdy(cli.SYSTEM, TMUX, "new-session", "-ds", m.Option(kit.MDB_NAME))
|
ls := kit.Split(m.Option(kit.MDB_NAME), "-_")
|
||||||
|
name := ls[len(ls)-1]
|
||||||
|
|
||||||
|
m.Cmdy(cli.SYSTEM, TMUX, "new-session", "-ds", m.Option(kit.MDB_NAME), "-n", name)
|
||||||
|
name = m.Option(kit.MDB_NAME) + ":" + ls[len(ls)-1]
|
||||||
|
|
||||||
|
m.Cmdy(cli.SYSTEM, TMUX, "split-window", "-t", kit.Keys(name, "1"), "-p", "20")
|
||||||
|
m.Cmdy(cli.SYSTEM, TMUX, "split-window", "-t", kit.Keys(name, "2"), "-h")
|
||||||
|
|
||||||
|
m.Cmd(cli.SYSTEM, TMUX, "send-keys", "-t", kit.Keys(name, "3"), "ish_miss_log", "Enter")
|
||||||
|
m.Cmd(cli.SYSTEM, TMUX, "send-keys", "-t", kit.Keys(name, "2"), "ish_miss_space dev")
|
||||||
|
m.Cmd(cli.SYSTEM, TMUX, "send-keys", "-t", kit.Keys(name, "1"), "vi etc/miss.sh", "Enter")
|
||||||
|
|
||||||
|
m.Cmdy(cli.SYSTEM, TMUX, "link-window", "-s", name, "-t", "miss:")
|
||||||
}
|
}
|
||||||
m.Option(ice.MSG_PROCESS, "_refresh")
|
m.Option(ice.MSG_PROCESS, "_refresh")
|
||||||
}},
|
}},
|
||||||
|
6
type.go
6
type.go
@ -219,7 +219,7 @@ func (c *Context) _split(name string) []interface{} {
|
|||||||
switch kit.Value(item, kit.MDB_INPUT, ls[i+1]); ls[i+1] {
|
switch kit.Value(item, kit.MDB_INPUT, ls[i+1]); ls[i+1] {
|
||||||
case "textarea":
|
case "textarea":
|
||||||
kit.Value(item, "style.width", "360")
|
kit.Value(item, "style.width", "360")
|
||||||
kit.Value(item, "style.height", "120")
|
kit.Value(item, "style.height", "60")
|
||||||
case "button":
|
case "button":
|
||||||
kit.Value(item, kit.MDB_VALUE, "")
|
kit.Value(item, kit.MDB_VALUE, "")
|
||||||
button = true
|
button = true
|
||||||
@ -632,6 +632,10 @@ func (m *Message) _hand(arg ...interface{}) *Message {
|
|||||||
m.TryCatch(m.Spawn(), true, func(msg *Message) {
|
m.TryCatch(m.Spawn(), true, func(msg *Message) {
|
||||||
m = m.target.cmd(msg, cmd, list[0], list[1:]...)
|
m = m.target.cmd(msg, cmd, list[0], list[1:]...)
|
||||||
})
|
})
|
||||||
|
} else if cmd, ok := m.source.Commands[list[0]]; ok {
|
||||||
|
m.TryCatch(m.Spawn(m.source), true, func(msg *Message) {
|
||||||
|
m = m.source.cmd(msg, cmd, list[0], list[1:]...)
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
m.Search(list[0], func(p *Context, s *Context, key string, cmd *Command) {
|
m.Search(list[0], func(p *Context, s *Context, key string, cmd *Command) {
|
||||||
m.TryCatch(m.Spawn(s), true, func(msg *Message) {
|
m.TryCatch(m.Spawn(s), true, func(msg *Message) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user