mirror of
https://shylinux.com/x/icebergs
synced 2025-05-02 11:37:01 +08:00
opt some
This commit is contained in:
parent
4f30191b4f
commit
ecb66d16d3
@ -126,11 +126,9 @@ const (
|
|||||||
const DAEMON = "daemon"
|
const DAEMON = "daemon"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.Merge(&ice.Context{
|
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
|
||||||
Configs: map[string]*ice.Config{
|
|
||||||
DAEMON: {Name: DAEMON, Help: "守护进程", Value: kit.Data(kit.MDB_PATH, ice.USR_LOCAL_DAEMON)},
|
DAEMON: {Name: DAEMON, Help: "守护进程", Value: kit.Data(kit.MDB_PATH, ice.USR_LOCAL_DAEMON)},
|
||||||
},
|
}, Commands: map[string]*ice.Command{
|
||||||
Commands: map[string]*ice.Command{
|
|
||||||
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.Cmd(mdb.PRUNES, DAEMON, "", mdb.HASH, mdb.CACHE_CLEAR_ON_EXIT, ice.TRUE)
|
m.Cmd(mdb.PRUNES, DAEMON, "", mdb.HASH, mdb.CACHE_CLEAR_ON_EXIT, ice.TRUE)
|
||||||
}},
|
}},
|
||||||
@ -188,6 +186,5 @@ func init() {
|
|||||||
m.Cmdy(SYSTEM, arg)
|
m.Cmdy(SYSTEM, arg)
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
},
|
}})
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,6 @@ package cli
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
|
||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
@ -26,7 +25,6 @@ func _system_show(m *ice.Message, cmd *exec.Cmd) {
|
|||||||
if w, ok := m.Optionv(CMD_ERRPUT).(io.Writer); ok {
|
if w, ok := m.Optionv(CMD_ERRPUT).(io.Writer); ok {
|
||||||
cmd.Stderr = w
|
cmd.Stderr = w
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
out := bytes.NewBuffer(make([]byte, 0, ice.MOD_BUFS))
|
out := bytes.NewBuffer(make([]byte, 0, ice.MOD_BUFS))
|
||||||
err := bytes.NewBuffer(make([]byte, 0, ice.MOD_BUFS))
|
err := bytes.NewBuffer(make([]byte, 0, ice.MOD_BUFS))
|
||||||
@ -59,6 +57,9 @@ func SystemProcess(m *ice.Message, text string, arg ...string) {
|
|||||||
m.ProcessField(SYSTEM, RUN)
|
m.ProcessField(SYSTEM, RUN)
|
||||||
m.Push(ARG, kit.Split(text))
|
m.Push(ARG, kit.Split(text))
|
||||||
}
|
}
|
||||||
|
func IsSuccess(m *ice.Message) bool {
|
||||||
|
return m.Append(CMD_CODE) == "0"
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
CMD_DIR = "cmd_dir"
|
CMD_DIR = "cmd_dir"
|
||||||
@ -75,9 +76,15 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
GOARCH = "goarch"
|
||||||
|
GOOS = "goos"
|
||||||
LINUX = "linux"
|
LINUX = "linux"
|
||||||
DARWIN = "darwin"
|
DARWIN = "darwin"
|
||||||
WINDOWS = "windows"
|
WINDOWS = "windows"
|
||||||
|
AMD64 = "amd64"
|
||||||
|
I386 = "i386"
|
||||||
|
ARM = "arm"
|
||||||
|
|
||||||
SOURCE = "source"
|
SOURCE = "source"
|
||||||
TARGET = "target"
|
TARGET = "target"
|
||||||
|
|
||||||
@ -88,11 +95,9 @@ const (
|
|||||||
const SYSTEM = "system"
|
const SYSTEM = "system"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.Merge(&ice.Context{
|
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
|
||||||
Configs: map[string]*ice.Config{
|
|
||||||
SYSTEM: {Name: SYSTEM, Help: "系统命令", Value: kit.Data()},
|
SYSTEM: {Name: SYSTEM, Help: "系统命令", Value: kit.Data()},
|
||||||
},
|
}, Commands: map[string]*ice.Command{
|
||||||
Commands: map[string]*ice.Command{
|
|
||||||
SYSTEM: {Name: "system cmd run:button", Help: "系统命令", Hand: func(m *ice.Message, c *ice.Context, key string, arg ...string) {
|
SYSTEM: {Name: "system cmd run:button", Help: "系统命令", Hand: func(m *ice.Message, c *ice.Context, key string, arg ...string) {
|
||||||
if len(arg) == 0 {
|
if len(arg) == 0 {
|
||||||
m.Fields(len(arg), "time,id,cmd")
|
m.Fields(len(arg), "time,id,cmd")
|
||||||
@ -117,7 +122,7 @@ func init() {
|
|||||||
// 环境变量
|
// 环境变量
|
||||||
env := kit.Simple(m.Optionv(CMD_ENV))
|
env := kit.Simple(m.Optionv(CMD_ENV))
|
||||||
for i := 0; i < len(env)-1; i += 2 {
|
for i := 0; i < len(env)-1; i += 2 {
|
||||||
cmd.Env = append(cmd.Env, fmt.Sprintf("%s=%s", env[i], env[i+1]))
|
cmd.Env = append(cmd.Env, kit.Format("%s=%s", env[i], env[i+1]))
|
||||||
}
|
}
|
||||||
if len(cmd.Env) > 0 {
|
if len(cmd.Env) > 0 {
|
||||||
m.Log_EXPORT(kit.MDB_META, SYSTEM, CMD_ENV, cmd.Env)
|
m.Log_EXPORT(kit.MDB_META, SYSTEM, CMD_ENV, cmd.Env)
|
||||||
@ -130,6 +135,5 @@ func init() {
|
|||||||
_system_show(m, cmd)
|
_system_show(m, cmd)
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
},
|
}})
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
@ -144,6 +144,7 @@ func _hash_prunes(m *ice.Message, prefix, chain string, arg ...string) {
|
|||||||
const HASH = "hash"
|
const HASH = "hash"
|
||||||
|
|
||||||
func HashAction(fields ...string) map[string]*ice.Action {
|
func HashAction(fields ...string) map[string]*ice.Action {
|
||||||
|
_key := func(m *ice.Message) string { return kit.Select(kit.MDB_HASH, m.Config(kit.MDB_SHORT)) }
|
||||||
return ice.SelectAction(map[string]*ice.Action{
|
return ice.SelectAction(map[string]*ice.Action{
|
||||||
INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(INPUTS, m.PrefixKey(), "", HASH, arg)
|
m.Cmdy(INPUTS, m.PrefixKey(), "", HASH, arg)
|
||||||
@ -152,16 +153,16 @@ func HashAction(fields ...string) map[string]*ice.Action {
|
|||||||
m.Cmdy(INSERT, m.PrefixKey(), "", HASH, arg)
|
m.Cmdy(INSERT, m.PrefixKey(), "", HASH, arg)
|
||||||
}},
|
}},
|
||||||
REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(DELETE, m.PrefixKey(), "", HASH, m.OptionSimple(kit.Select(kit.MDB_HASH, m.Config(kit.MDB_SHORT))), arg)
|
m.Cmdy(DELETE, m.PrefixKey(), "", HASH, m.OptionSimple(_key(m)), arg)
|
||||||
}},
|
}},
|
||||||
MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(MODIFY, m.PrefixKey(), "", HASH, m.OptionSimple(kit.Select(kit.MDB_HASH, m.Config(kit.MDB_SHORT))), arg)
|
m.Cmdy(MODIFY, m.PrefixKey(), "", HASH, m.OptionSimple(_key(m)), arg)
|
||||||
}},
|
}},
|
||||||
EXPORT: {Name: "export", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
EXPORT: {Name: "export", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(EXPORT, m.PrefixKey(), "", HASH)
|
m.Cmdy(EXPORT, m.PrefixKey(), "", HASH, arg)
|
||||||
}},
|
}},
|
||||||
IMPORT: {Name: "import", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
IMPORT: {Name: "import", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(IMPORT, m.PrefixKey(), "", HASH)
|
m.Cmdy(IMPORT, m.PrefixKey(), "", HASH, arg)
|
||||||
}},
|
}},
|
||||||
PRUNES: {Name: "prunes before@date", Help: "清理", Hand: func(m *ice.Message, arg ...string) {
|
PRUNES: {Name: "prunes before@date", Help: "清理", Hand: func(m *ice.Message, arg ...string) {
|
||||||
list := []string{}
|
list := []string{}
|
||||||
@ -170,7 +171,7 @@ func HashAction(fields ...string) map[string]*ice.Action {
|
|||||||
list = append(list, key)
|
list = append(list, key)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
m.OptionFields(m.Conf(m.PrefixKey(), kit.META_FIELD))
|
m.OptionFields(m.Config(kit.MDB_FIELD))
|
||||||
for _, v := range list {
|
for _, v := range list {
|
||||||
m.Cmdy(DELETE, m.PrefixKey(), "", HASH, kit.MDB_HASH, v)
|
m.Cmdy(DELETE, m.PrefixKey(), "", HASH, kit.MDB_HASH, v)
|
||||||
}
|
}
|
||||||
|
@ -129,32 +129,9 @@ func _zone_import(m *ice.Message, prefix, chain, file string) {
|
|||||||
const ZONE_FIELD = "time,zone,count"
|
const ZONE_FIELD = "time,zone,count"
|
||||||
|
|
||||||
func ZoneAction(fields ...string) map[string]*ice.Action {
|
func ZoneAction(fields ...string) map[string]*ice.Action {
|
||||||
_zone := func(m *ice.Message) string {
|
_zone := func(m *ice.Message) string { return kit.Select(kit.MDB_ZONE, m.Config(kit.MDB_SHORT)) }
|
||||||
return kit.Select(kit.MDB_ZONE, m.Conf(m.PrefixKey(), kit.Keym(kit.MDB_SHORT)))
|
|
||||||
}
|
|
||||||
return ice.SelectAction(map[string]*ice.Action{
|
return ice.SelectAction(map[string]*ice.Action{
|
||||||
CREATE: {Name: "create zone", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(INSERT, m.PrefixKey(), "", HASH, arg)
|
|
||||||
}},
|
|
||||||
INSERT: {Name: "insert zone type=go name=hi text=hello", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(INSERT, m.PrefixKey(), "", HASH, _zone(m), arg[1])
|
|
||||||
m.Cmdy(INSERT, m.PrefixKey(), "", ZONE, m.Option(_zone(m)), arg[2:])
|
|
||||||
}},
|
|
||||||
MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(MODIFY, m.PrefixKey(), "", ZONE, m.Option(_zone(m)), m.Option(kit.MDB_ID), arg)
|
|
||||||
}},
|
|
||||||
REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(DELETE, m.PrefixKey(), "", HASH, m.OptionSimple(_zone(m)))
|
|
||||||
}},
|
|
||||||
EXPORT: {Name: "export", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.OptionFields(_zone(m), m.Conf(m.PrefixKey(), kit.META_FIELD))
|
|
||||||
m.Cmdy(EXPORT, m.PrefixKey(), "", ZONE)
|
|
||||||
m.Conf(m.PrefixKey(), kit.MDB_HASH, "")
|
|
||||||
}},
|
|
||||||
IMPORT: {Name: "import", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.OptionFields(_zone(m))
|
|
||||||
m.Cmdy(IMPORT, m.PrefixKey(), "", ZONE)
|
|
||||||
}},
|
|
||||||
INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||||
switch arg[0] {
|
switch arg[0] {
|
||||||
case _zone(m):
|
case _zone(m):
|
||||||
@ -163,5 +140,33 @@ func ZoneAction(fields ...string) map[string]*ice.Action {
|
|||||||
m.Cmdy(INPUTS, m.PrefixKey(), "", ZONE, m.Option(_zone(m)), arg)
|
m.Cmdy(INPUTS, m.PrefixKey(), "", ZONE, m.Option(_zone(m)), arg)
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
|
CREATE: {Name: "create zone", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(INSERT, m.PrefixKey(), "", HASH, arg)
|
||||||
|
}},
|
||||||
|
REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(DELETE, m.PrefixKey(), "", HASH, m.OptionSimple(_zone(m)), arg)
|
||||||
|
}},
|
||||||
|
INSERT: {Name: "insert zone type=go name=hi text=hello", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(INSERT, m.PrefixKey(), "", HASH, _zone(m), arg[1])
|
||||||
|
m.Cmdy(INSERT, m.PrefixKey(), "", ZONE, m.Option(_zone(m)), arg[2:])
|
||||||
|
}},
|
||||||
|
MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(MODIFY, m.PrefixKey(), "", ZONE, m.Option(_zone(m)), m.Option(kit.MDB_ID), arg)
|
||||||
|
}},
|
||||||
|
EXPORT: {Name: "export", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.OptionFields(_zone(m), m.Config(kit.MDB_FIELD))
|
||||||
|
m.Cmdy(EXPORT, m.PrefixKey(), "", ZONE)
|
||||||
|
m.Conf(m.PrefixKey(), kit.MDB_HASH, "")
|
||||||
|
}},
|
||||||
|
IMPORT: {Name: "import", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.OptionFields(_zone(m))
|
||||||
|
m.Cmdy(IMPORT, m.PrefixKey(), "", ZONE)
|
||||||
|
}},
|
||||||
|
PREV: {Name: "prev", Help: "上一页", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
PrevPage(m, arg[0], arg[1:]...)
|
||||||
|
}},
|
||||||
|
NEXT: {Name: "next", Help: "下一页", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
NextPageLimit(m, arg[0], arg[1:]...)
|
||||||
|
}},
|
||||||
}, fields...)
|
}, fields...)
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ func init() {
|
|||||||
m.Cmd(TAIL, mdb.CREATE, kit.MDB_FILE, kit.Format(value[kit.MDB_FILE]), kit.MDB_NAME, kit.Format(value[kit.MDB_NAME]))
|
m.Cmd(TAIL, mdb.CREATE, kit.MDB_FILE, kit.Format(value[kit.MDB_FILE]), kit.MDB_NAME, kit.Format(value[kit.MDB_NAME]))
|
||||||
})
|
})
|
||||||
}},
|
}},
|
||||||
TAIL: {Name: "tail name id auto page filter:text create", Help: "日志流", Action: map[string]*ice.Action{
|
TAIL: {Name: "tail name id auto page filter:text create", Help: "日志流", Action: ice.MergeAction(map[string]*ice.Action{
|
||||||
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 FILE:
|
case FILE:
|
||||||
@ -55,21 +55,17 @@ func init() {
|
|||||||
m.ProcessAgain()
|
m.ProcessAgain()
|
||||||
case kit.MDB_NAME:
|
case kit.MDB_NAME:
|
||||||
m.Push(arg[0], kit.Split(m.Option(FILE), "/"))
|
m.Push(arg[0], kit.Split(m.Option(FILE), "/"))
|
||||||
|
case "limit":
|
||||||
|
m.Push("limit", 10)
|
||||||
|
m.Push("limit", 20)
|
||||||
|
m.Push("limit", 30)
|
||||||
|
m.Push("limit", 50)
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
mdb.CREATE: {Name: "create file name", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
mdb.CREATE: {Name: "create file name", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_tail_create(m, arg...)
|
_tail_create(m, arg...)
|
||||||
}},
|
}},
|
||||||
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
}, mdb.ZoneAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.Cmdy(mdb.DELETE, TAIL, "", mdb.HASH, m.OptionSimple(kit.MDB_NAME))
|
|
||||||
}},
|
|
||||||
mdb.PREV: {Name: "prev", Help: "上一页", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
mdb.PrevPage(m, arg[0], arg[1:]...)
|
|
||||||
}},
|
|
||||||
mdb.NEXT: {Name: "next", Help: "下一页", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
mdb.NextPageLimit(m, arg[0], arg[1:]...)
|
|
||||||
}},
|
|
||||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
|
||||||
m.Fields(len(kit.Slice(arg, 0, 2)), "time,name,count,file", "time,id,file,text")
|
m.Fields(len(kit.Slice(arg, 0, 2)), "time,name,count,file", "time,id,file,text")
|
||||||
m.Option(mdb.CACHE_FILTER, kit.Select("", arg, 4))
|
m.Option(mdb.CACHE_FILTER, kit.Select("", arg, 4))
|
||||||
m.Option(mdb.CACHE_OFFEND, kit.Select("0", arg, 3))
|
m.Option(mdb.CACHE_OFFEND, kit.Select("0", arg, 3))
|
||||||
|
@ -100,8 +100,10 @@ func _autogen_version(m *ice.Message) {
|
|||||||
m.Cmdy(cli.SYSTEM, "go", "mod", "init", path.Base(kit.Path("")))
|
m.Cmdy(cli.SYSTEM, "go", "mod", "init", path.Base(kit.Path("")))
|
||||||
}
|
}
|
||||||
|
|
||||||
file := ice.SRC_VERSION_GO
|
m.Cmd(nfs.DEFS, ice.SRC_BINPACK_GO, kit.Format(`package main
|
||||||
m.Cmd(nfs.SAVE, file, kit.Format(`package main
|
`))
|
||||||
|
|
||||||
|
m.Cmd(nfs.SAVE, ice.SRC_VERSION_GO, kit.Format(`package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"shylinux.com/x/icebergs"
|
"shylinux.com/x/icebergs"
|
||||||
@ -124,10 +126,9 @@ func init() {
|
|||||||
strings.TrimSpace(m.Cmdx(cli.SYSTEM, "git", "describe", "--tags")),
|
strings.TrimSpace(m.Cmdx(cli.SYSTEM, "git", "describe", "--tags")),
|
||||||
ice.Info.HostName, ice.Info.UserName,
|
ice.Info.HostName, ice.Info.UserName,
|
||||||
))
|
))
|
||||||
defer m.Cmdy(nfs.CAT, file)
|
|
||||||
|
|
||||||
m.Cmdy(nfs.DIR, file, "time,size,line,path")
|
|
||||||
m.Cmdy(nfs.DIR, ice.SRC_BINPACK_GO, "time,size,line,path")
|
m.Cmdy(nfs.DIR, ice.SRC_BINPACK_GO, "time,size,line,path")
|
||||||
|
m.Cmdy(nfs.DIR, ice.SRC_VERSION_GO, "time,size,line,path")
|
||||||
m.Cmdy(nfs.DIR, ice.SRC_MAIN_GO, "time,size,line,path")
|
m.Cmdy(nfs.DIR, ice.SRC_MAIN_GO, "time,size,line,path")
|
||||||
}
|
}
|
||||||
func _autogen_miss(m *ice.Message) {
|
func _autogen_miss(m *ice.Message) {
|
||||||
|
@ -16,12 +16,15 @@ func init() {
|
|||||||
kit.MDB_SHORT, kit.MDB_ZONE, kit.MDB_FIELD, "time,id,name,cmd,api,arg,res",
|
kit.MDB_SHORT, kit.MDB_ZONE, kit.MDB_FIELD, "time,id,name,cmd,api,arg,res",
|
||||||
)},
|
)},
|
||||||
}, Commands: map[string]*ice.Command{
|
}, Commands: map[string]*ice.Command{
|
||||||
CASE: {Name: "case zone id auto", Help: "用例", Action: ice.MergeAction(map[string]*ice.Action{
|
CASE: {Name: "case dev zone id auto", Help: "用例", Action: ice.MergeAction(map[string]*ice.Action{
|
||||||
mdb.INSERT: {Name: "create zone name=hi cmd=POST,GET api arg:textarea res:textarea", Help: "添加"},
|
mdb.CREATE: {Name: "create name address", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(web.SPIDE, mdb.CREATE, arg)
|
||||||
|
}},
|
||||||
|
mdb.INSERT: {Name: "insert zone name=hi cmd=POST,GET api arg:textarea res:textarea", Help: "添加"},
|
||||||
|
|
||||||
cli.RUN: {Name: "run", Help: "运行", Hand: func(m *ice.Message, arg ...string) {
|
cli.RUN: {Name: "run", Help: "运行", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Option(web.SPIDE_HEADER, web.ContentType, web.ContentJSON)
|
m.Option(web.SPIDE_HEADER, web.ContentType, web.ContentJSON)
|
||||||
m.Echo(kit.Formats(kit.UnMarshal(m.Cmdx(web.SPIDE, ice.DEV, web.SPIDE_RAW,
|
m.Echo(kit.Formats(kit.UnMarshal(m.Cmdx(web.SPIDE, m.Option(ice.DEV), web.SPIDE_RAW,
|
||||||
m.Option(cli.CMD), m.Option(cli.API), web.SPIDE_DATA, m.Option(cli.ARG)))))
|
m.Option(cli.CMD), m.Option(cli.API), web.SPIDE_DATA, m.Option(cli.ARG)))))
|
||||||
m.Info(`curl "` + m.Option(cli.API) + `" -H "Content-Type: application/json"` + ` -d '` + m.Option(cli.ARG) + `'`)
|
m.Info(`curl "` + m.Option(cli.API) + `" -H "Content-Type: application/json"` + ` -d '` + m.Option(cli.ARG) + `'`)
|
||||||
m.ProcessDisplay("/plugin/local/wiki/json.js")
|
m.ProcessDisplay("/plugin/local/wiki/json.js")
|
||||||
@ -58,9 +61,17 @@ func init() {
|
|||||||
m.Echo(ice.OK)
|
m.Echo(ice.OK)
|
||||||
}},
|
}},
|
||||||
}, mdb.ZoneAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
}, mdb.ZoneAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.Fields(len(arg), "time,zone,count", m.Conf(m.PrefixKey(), kit.META_FIELD))
|
if len(arg) == 0 {
|
||||||
if m.Cmdy(mdb.SELECT, m.PrefixKey(), "", mdb.ZONE, arg); len(arg) == 0 {
|
m.Action(mdb.CREATE)
|
||||||
m.Action(mdb.CREATE, mdb.EXPORT, mdb.IMPORT)
|
m.Cmdy(web.SPIDE)
|
||||||
|
m.RenameAppend("client.name", "dev")
|
||||||
|
m.RenameAppend("client.url", "address")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
m.Fields(len(arg)-1, "time,zone,count", m.Config(kit.MDB_FIELD))
|
||||||
|
if m.Cmdy(mdb.SELECT, m.PrefixKey(), "", mdb.ZONE, arg[1:]); len(arg) == 1 {
|
||||||
|
m.Action(mdb.INSERT, mdb.EXPORT, mdb.IMPORT)
|
||||||
m.PushAction(mdb.INSERT, cli.CHECK, mdb.REMOVE)
|
m.PushAction(mdb.INSERT, cli.CHECK, mdb.REMOVE)
|
||||||
} else {
|
} else {
|
||||||
m.Action(mdb.INSERT, cli.CHECK)
|
m.Action(mdb.INSERT, cli.CHECK)
|
||||||
|
@ -3,72 +3,70 @@ package code
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
"strings"
|
|
||||||
|
|
||||||
ice "shylinux.com/x/icebergs"
|
ice "shylinux.com/x/icebergs"
|
||||||
"shylinux.com/x/icebergs/base/cli"
|
"shylinux.com/x/icebergs/base/cli"
|
||||||
"shylinux.com/x/icebergs/base/mdb"
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
"shylinux.com/x/icebergs/base/nfs"
|
"shylinux.com/x/icebergs/base/nfs"
|
||||||
|
"shylinux.com/x/icebergs/base/tcp"
|
||||||
kit "shylinux.com/x/toolkits"
|
kit "shylinux.com/x/toolkits"
|
||||||
)
|
)
|
||||||
|
|
||||||
const COMPILE = "compile"
|
const COMPILE = "compile"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.Merge(&ice.Context{
|
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
|
||||||
Configs: map[string]*ice.Config{
|
|
||||||
COMPILE: {Name: COMPILE, Help: "编译", Value: kit.Data(
|
COMPILE: {Name: COMPILE, Help: "编译", Value: kit.Data(
|
||||||
kit.MDB_PATH, ice.USR_PUBLISH, cli.ENV, kit.Dict(
|
nfs.PATH, ice.USR_PUBLISH, cli.ENV, kit.Dict(
|
||||||
"CGO_ENABLED", "0", "GOCACHE", os.Getenv("GOCACHE"),
|
"GOPRIVATE", "shylinux.com,github.com", "GOPROXY", "https://goproxy.cn,direct",
|
||||||
cli.HOME, os.Getenv(cli.HOME), cli.PATH, os.Getenv(cli.PATH),
|
cli.HOME, os.Getenv(cli.HOME), cli.PATH, os.Getenv(cli.PATH),
|
||||||
"GOPROXY", "https://goproxy.cn,direct", "GOPRIVATE", "github.com",
|
"GOCACHE", os.Getenv("GOCACHE"), "CGO_ENABLED", "0",
|
||||||
), GO, []interface{}{GO, cli.BUILD},
|
), GO, kit.List(GO, cli.BUILD),
|
||||||
)},
|
)},
|
||||||
},
|
}, Commands: map[string]*ice.Command{
|
||||||
Commands: map[string]*ice.Command{
|
|
||||||
COMPILE: {Name: "compile arch=amd64,386,arm os=linux,darwin,windows src=src/main.go@key run:button", Help: "编译", Action: map[string]*ice.Action{
|
COMPILE: {Name: "compile arch=amd64,386,arm os=linux,darwin,windows src=src/main.go@key run:button", Help: "编译", Action: map[string]*ice.Action{
|
||||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(nfs.DIR, "src", "path,size,time", ice.Option{nfs.DIR_REG, `.*\.go$`})
|
m.Cmdy(nfs.DIR, ice.SRC, "path,size,time", ice.Option{nfs.DIR_REG, `.*\.go$`})
|
||||||
m.Sort(kit.MDB_PATH)
|
m.Sort(kit.MDB_PATH)
|
||||||
}},
|
}},
|
||||||
}, 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 {
|
if len(arg) == 0 {
|
||||||
m.Cmdy(nfs.DIR, m.Conf(COMPILE, kit.META_PATH), "time,size,path")
|
m.Cmdy(nfs.DIR, m.Config(nfs.PATH), "time,size,path")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 交叉编译
|
||||||
main := ice.SRC_MAIN_GO
|
main := ice.SRC_MAIN_GO
|
||||||
goos := m.Conf(cli.RUNTIME, "host.GOOS")
|
goos := m.Conf(cli.RUNTIME, kit.Keys(tcp.HOST, cli.GOOS))
|
||||||
arch := m.Conf(cli.RUNTIME, "host.GOARCH")
|
arch := m.Conf(cli.RUNTIME, kit.Keys(tcp.HOST, cli.GOARCH))
|
||||||
for _, k := range arg {
|
for _, k := range arg {
|
||||||
switch k {
|
switch k {
|
||||||
case cli.LINUX, cli.DARWIN, cli.WINDOWS:
|
case cli.LINUX, cli.DARWIN, cli.WINDOWS:
|
||||||
goos = k
|
goos = k
|
||||||
case "amd64", "386", "arm":
|
case cli.AMD64, cli.I386, cli.ARM:
|
||||||
arch = k
|
arch = k
|
||||||
default:
|
default:
|
||||||
|
if kit.Ext(k) == GO {
|
||||||
main = k
|
main = k
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
file := path.Join(kit.Select("", m.Config(nfs.PATH), m.Option(cli.CMD_DIR) == ""),
|
||||||
|
kit.Keys(kit.Select(ice.ICE, kit.TrimExt(main, ".go"), main != ice.SRC_MAIN_GO), goos, arch))
|
||||||
|
|
||||||
|
// 执行编译
|
||||||
_autogen_version(m.Spawn())
|
_autogen_version(m.Spawn())
|
||||||
|
m.Optionv(cli.CMD_ENV, kit.Simple(m.Confv(COMPILE, kit.Keym(cli.ENV)), cli.GOOS, goos, cli.GOARCH, arch))
|
||||||
// 编译目标
|
if msg := m.Cmd(cli.SYSTEM, m.Confv(COMPILE, kit.Keym(GO)), "-o", file, main, ice.SRC_VERSION_GO, ice.SRC_BINPACK_GO); !cli.IsSuccess(msg) {
|
||||||
file := path.Join(kit.Select("", m.Conf(COMPILE, kit.META_PATH), m.Option(cli.CMD_DIR) == ""),
|
|
||||||
kit.Keys(kit.Select("ice", path.Base(strings.TrimSuffix(main, ".go")), main != ice.SRC_MAIN_GO), goos, arch))
|
|
||||||
|
|
||||||
// 编译参数
|
|
||||||
m.Optionv(cli.CMD_ENV, kit.Simple(m.Confv(COMPILE, kit.Keym(cli.ENV)), "GOARCH", arch, "GOOS", goos))
|
|
||||||
if msg := m.Cmd(cli.SYSTEM, m.Confv(COMPILE, kit.Keym(GO)),
|
|
||||||
"-o", file, main, ice.SRC_VERSION_GO, ice.SRC_BINPACK_GO); msg.Append(cli.CMD_CODE) != "0" {
|
|
||||||
m.Copy(msg)
|
m.Copy(msg)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 编译成功
|
||||||
m.Log_EXPORT(cli.SOURCE, main, cli.TARGET, file)
|
m.Log_EXPORT(cli.SOURCE, main, cli.TARGET, file)
|
||||||
m.Cmdy(nfs.DIR, file)
|
m.Cmdy(nfs.DIR, file, "time,path,size,link,action")
|
||||||
m.EchoDownload(file)
|
m.Cmdy(PUBLISH, ice.CONTEXTS, "base")
|
||||||
m.StatusTimeCount()
|
m.StatusTimeCount()
|
||||||
}},
|
}},
|
||||||
},
|
}})
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user