mirror of
https://shylinux.com/x/icebergs
synced 2025-04-26 01:24:05 +08:00
opt bash
This commit is contained in:
parent
5d485bb0dd
commit
9d388114be
@ -75,7 +75,7 @@ func SessCreate(m *ice.Message, username string) string {
|
||||
return m.Option(ice.MSG_SESSID, m.Cmdx(SESS, mdb.CREATE, username))
|
||||
}
|
||||
func SessCheck(m *ice.Message, sessid string) bool {
|
||||
return m.Cmdy(SESS, CHECK, sessid).Option(ice.MSG_USERNAME) != ""
|
||||
return sessid != "" && m.Cmdy(SESS, CHECK, sessid).Option(ice.MSG_USERNAME) != ""
|
||||
}
|
||||
func UserLogout(m *ice.Message) {
|
||||
m.Cmd(SESS, mdb.REMOVE, kit.Dict(mdb.HASH, m.Option(ice.MSG_SESSID)))
|
||||
|
@ -100,6 +100,9 @@ func UserInfo(m *ice.Message, name ice.Any, key, meta string) (value string) {
|
||||
return
|
||||
}
|
||||
func UserRole(m *ice.Message, username ice.Any) (role string) {
|
||||
if username == "" {
|
||||
return VOID
|
||||
}
|
||||
if role = VOID; username == ice.Info.UserName {
|
||||
return ROOT
|
||||
}
|
||||
|
@ -124,7 +124,7 @@ func CmdAction(args ...ice.Any) ice.Actions {
|
||||
m.Cmdy(CONFIG, arg[0])
|
||||
return
|
||||
}
|
||||
if aaa.Right(m, arg) && !PodCmd(m, arg) {
|
||||
if !PodCmd(m, arg) && aaa.Right(m, arg) {
|
||||
m.Cmdy(arg)
|
||||
}
|
||||
}},
|
||||
|
@ -192,6 +192,9 @@ func ZoneRemove(m *ice.Message, arg ...Any) {
|
||||
}
|
||||
func ZoneInsert(m *ice.Message, arg ...Any) {
|
||||
args := kit.Simple(arg...)
|
||||
if len(args) == 0 {
|
||||
args = m.OptionSimple(ZoneShort(m), m.Config(FIELD))
|
||||
}
|
||||
m.Cmdy(INSERT, m.PrefixKey(), "", ZONE, args[1], ZoneArgs(m, args[2:]))
|
||||
}
|
||||
func ZoneModify(m *ice.Message, arg ...Any) {
|
||||
|
@ -174,6 +174,9 @@ func init() {
|
||||
if r.Method != http.MethodGet {
|
||||
return false
|
||||
}
|
||||
if !strings.HasPrefix(r.Header.Get(web.UserAgent), "Mozilla") {
|
||||
return false
|
||||
}
|
||||
if strings.HasPrefix(r.URL.Path, CHAT_WEBSITE) {
|
||||
_website_render(m, w, r, kit.Ext(r.URL.Path), m.Cmdx(nfs.CAT, strings.Replace(r.URL.Path, CHAT_WEBSITE, SRC_WEBSITE, 1)), path.Base(r.URL.Path))
|
||||
return true
|
||||
|
@ -6,21 +6,16 @@ import (
|
||||
"shylinux.com/x/icebergs/base/nfs"
|
||||
"shylinux.com/x/icebergs/base/web"
|
||||
"shylinux.com/x/icebergs/core/code"
|
||||
kit "shylinux.com/x/toolkits"
|
||||
)
|
||||
|
||||
const BASH = "bash"
|
||||
|
||||
var Index = &ice.Context{Name: BASH, Help: "命令行", Configs: ice.Configs{
|
||||
BASH: {Name: BASH, Help: "命令行", Value: kit.Data(
|
||||
nfs.SOURCE, "http://mirrors.tencent.com/macports/distfiles/bash/5.1_1/bash-5.1.tar.gz",
|
||||
)},
|
||||
}, Commands: ice.Commands{
|
||||
var Index = &ice.Context{Name: BASH, Help: "命令行", Commands: ice.Commands{
|
||||
BASH: {Name: "bash path auto order build download", Help: "命令行", Actions: ice.MergeActions(ice.Actions{
|
||||
cli.ORDER: {Name: "order", Help: "加载", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(code.INSTALL, cli.ORDER, m.Config(nfs.SOURCE), "_install/bin")
|
||||
}},
|
||||
}, code.InstallAction()), Hand: func(m *ice.Message, arg ...string) {
|
||||
}, code.InstallAction(nfs.SOURCE, "http://mirrors.tencent.com/macports/distfiles/bash/5.1_1/bash-5.1.tar.gz")), Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(code.INSTALL, nfs.SOURCE, m.Config(nfs.SOURCE), arg)
|
||||
}},
|
||||
}}
|
||||
|
@ -28,9 +28,11 @@ cd ./_install
|
||||
`
|
||||
|
||||
chapter "应用"
|
||||
field "文件夹" web.chat.files
|
||||
field "命令行" web.code.bash.bash
|
||||
field "会话流" web.code.bash.sess
|
||||
field "同步流" web.code.bash.sync
|
||||
field "收藏夹" web.code.bash.favor
|
||||
field "回收站" web.code.bash.trash
|
||||
field "文件夹" web.chat.files
|
||||
field "回收站" web.code.bash.grant
|
||||
|
||||
|
@ -5,7 +5,6 @@ import (
|
||||
"shylinux.com/x/icebergs/base/mdb"
|
||||
"shylinux.com/x/icebergs/base/nfs"
|
||||
"shylinux.com/x/icebergs/base/web"
|
||||
"shylinux.com/x/icebergs/core/chat"
|
||||
kit "shylinux.com/x/toolkits"
|
||||
)
|
||||
|
||||
@ -13,16 +12,16 @@ func init() {
|
||||
Index.MergeCommands(ice.Commands{
|
||||
"/download": {Name: "/download", Help: "下载", Hand: func(m *ice.Message, arg ...string) {
|
||||
if len(arg) == 0 || arg[0] == "" {
|
||||
m.Cmdy(chat.FILES).Table()
|
||||
m.Cmdy("web.chat.files").Table()
|
||||
return // 文件列表
|
||||
}
|
||||
|
||||
// 下载文件
|
||||
m.Cmdy(web.CACHE, m.Cmd(chat.FILES, arg[0]).Append(mdb.DATA))
|
||||
m.Cmdy(web.CACHE, m.Cmd("web.chat.files", arg[0]).Append(mdb.DATA))
|
||||
m.Render(kit.Select(ice.RENDER_DOWNLOAD, ice.RENDER_RESULT, m.Append(nfs.FILE) == ""), m.Append(mdb.TEXT))
|
||||
}},
|
||||
"/upload": {Name: "/upload", Help: "上传", Hand: func(m *ice.Message, arg ...string) {
|
||||
msg := m.Cmd(chat.FILES, web.UPLOAD) // 上传文件
|
||||
msg := m.Cmd("web.chat.files", web.UPLOAD) // 上传文件
|
||||
for _, k := range []string{mdb.DATA, mdb.TIME, mdb.TYPE, mdb.NAME, nfs.SIZE} {
|
||||
m.Echo("%s: %s\n", k, msg.Append(k))
|
||||
}
|
||||
|
@ -21,9 +21,7 @@ func init() {
|
||||
}
|
||||
})
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(FAVOR).Table()
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, arg ...string) { m.Cmdy(FAVOR).Table() }},
|
||||
FAVOR: {Name: "favor zone id auto", Help: "收藏夹", Actions: ice.MergeActions(ice.Actions{
|
||||
mdb.INSERT: {Name: "insert zone=系统命令 type=shell name=1 text=pwd pwd=/home", Help: "添加"},
|
||||
cli.SYSTEM: {Name: "system", Help: "命令", Hand: func(m *ice.Message, arg ...string) {
|
||||
|
@ -3,32 +3,26 @@ package bash
|
||||
import (
|
||||
ice "shylinux.com/x/icebergs"
|
||||
"shylinux.com/x/icebergs/base/mdb"
|
||||
kit "shylinux.com/x/toolkits"
|
||||
)
|
||||
|
||||
const GRANT = "grant"
|
||||
|
||||
func init() {
|
||||
Index.MergeCommands(ice.Commands{
|
||||
"grant": {Name: "grant hash auto", Help: "授权", Actions: ice.MergeActions(ice.Actions{
|
||||
GRANT: {Name: "grant hash auto", Help: "授权", Actions: ice.MergeActions(ice.Actions{
|
||||
"confirm": {Name: "confirm", Help: "同意", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmd(SESS, mdb.MODIFY, GRANT, m.Option(ice.MSG_USERNAME), ice.Option{mdb.HASH, m.Option("hash")})
|
||||
m.Cmd(SESS, mdb.MODIFY, GRANT, m.Option(ice.MSG_USERNAME))
|
||||
}},
|
||||
"revert": {Name: "confirm", Help: "撤销", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmd(SESS, mdb.MODIFY, GRANT, "", ice.Option{mdb.HASH, m.Option("hash")})
|
||||
}},
|
||||
"remove": {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmd(SESS, mdb.REMOVE, mdb.HASH, m.Option(mdb.HASH))
|
||||
"revert": {Name: "revert", Help: "撤销", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmd(SESS, mdb.MODIFY, GRANT, "")
|
||||
}},
|
||||
}, mdb.HashAction()), Hand: func(m *ice.Message, arg ...string) {
|
||||
if m.Cmdy(SESS, arg); len(arg) > 0 && m.Append("grant") == "" {
|
||||
m.Process("_confirm", "授权设备")
|
||||
if m.Cmdy(SESS, arg); len(arg) > 0 && m.Append(GRANT) == "" {
|
||||
m.ProcessConfirm("授权设备")
|
||||
}
|
||||
m.Tables(func(value ice.Maps) {
|
||||
if value["grant"] == "" {
|
||||
m.PushButton("confirm", mdb.REMOVE)
|
||||
} else {
|
||||
m.PushButton("revert", mdb.REMOVE)
|
||||
}
|
||||
m.PushButton(kit.Select("revert", "confirm", value[GRANT] == ""), mdb.REMOVE)
|
||||
})
|
||||
}},
|
||||
})
|
||||
|
@ -13,12 +13,10 @@ import (
|
||||
kit "shylinux.com/x/toolkits"
|
||||
)
|
||||
|
||||
func _run_action(m *ice.Message, cmd *ice.Command, code string, arg ...string) {
|
||||
m.Set(ice.MSG_RESULT)
|
||||
m.Echo("#/bin/bash\n")
|
||||
func _run_action(m *ice.Message, cmd *ice.Command, script string, arg ...string) {
|
||||
m.SetResult().Echo("#/bin/bash\n")
|
||||
|
||||
list := []string{}
|
||||
args := []string{}
|
||||
list, args := []string{}, []string{}
|
||||
kit.Fetch(cmd.Meta["_trans"], func(k string, v string) {
|
||||
list = append(list, k)
|
||||
args = append(args, kit.Format(` %s)`, k))
|
||||
@ -39,6 +37,7 @@ ish_sys_dev_run_source() {
|
||||
done
|
||||
}
|
||||
`, kit.Join(list, ice.SP), arg[0], kit.Join(args, ice.NL))
|
||||
|
||||
m.Echo(`
|
||||
ish_sys_dev_run_action() {
|
||||
select action in %s; do
|
||||
@ -52,48 +51,41 @@ ish_sys_dev_run_action() {
|
||||
}
|
||||
`, kit.Join(list, ice.SP), arg[0], kit.Join(args, ice.NL))
|
||||
|
||||
m.Echo(ice.NL)
|
||||
m.Echo(`ish_sys_dev_run_command() {
|
||||
m.Echo(`
|
||||
ish_sys_dev_run_command() {
|
||||
ish_sys_dev_run %s "$@"
|
||||
}
|
||||
`, arg[0])
|
||||
m.Echo(ice.NL)
|
||||
|
||||
if code == "" {
|
||||
m.Echo("cat $1")
|
||||
} else {
|
||||
m.Echo(code)
|
||||
}
|
||||
m.Echo(ice.NL)
|
||||
m.Debug(m.Result())
|
||||
m.Echo(kit.Select("cat $1", script))
|
||||
}
|
||||
|
||||
const RUN = "run"
|
||||
|
||||
func init() {
|
||||
Index.MergeCommands(ice.Commands{
|
||||
"/run/": {Name: "/run/", Help: "执行", Actions: ice.MergeActions(ice.Actions{
|
||||
"/run/": {Name: "/run/", Help: "执行", Actions: ice.Actions{
|
||||
ctx.COMMAND: {Name: "command", Help: "命令", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Search(arg[0], func(_ *ice.Context, s *ice.Context, key string, cmd *ice.Command) {
|
||||
if p := strings.ReplaceAll(kit.Select("/app/cat.sh", cmd.Meta["display"]), ".js", ".sh"); strings.HasPrefix(p, ice.PS+ice.REQUIRE) {
|
||||
if p := strings.ReplaceAll(kit.Select("/app/cat.sh", cmd.Meta[ctx.DISPLAY]), ".js", ".sh"); strings.HasPrefix(p, ice.PS+ice.REQUIRE) {
|
||||
m.Cmdy(web.SPIDE, ice.DEV, web.SPIDE_RAW, p)
|
||||
} else {
|
||||
m.Cmdy(nfs.CAT, path.Join(ice.USR_INTSHELL, p))
|
||||
}
|
||||
if m.Result() == "" || m.Result(1) == ice.ErrNotFound {
|
||||
m.Set(ice.MSG_RESULT)
|
||||
if m.IsErrNotFound() {
|
||||
m.SetResult()
|
||||
}
|
||||
_run_action(m, cmd, m.Result(), arg...)
|
||||
})
|
||||
}},
|
||||
ice.RUN: {Name: "run", Help: "执行", Hand: func(m *ice.Message, arg ...string) {
|
||||
if aaa.Right(m, arg) && !ctx.PodCmd(m, arg) {
|
||||
if !ctx.PodCmd(m, arg) && aaa.Right(m, arg) {
|
||||
m.Cmdy(arg)
|
||||
}
|
||||
if m.Result() == "" {
|
||||
m.Table()
|
||||
}
|
||||
}},
|
||||
}, ctx.CmdAction())},
|
||||
}},
|
||||
})
|
||||
}
|
||||
|
@ -42,6 +42,7 @@ func init() {
|
||||
m.Option(ice.MSG_USERNAME, msg.Append(GRANT))
|
||||
m.Option(ice.MSG_USERROLE, aaa.UserRole(m, msg.Append(GRANT)))
|
||||
m.Option(tcp.HOSTNAME, msg.Append(tcp.HOSTNAME))
|
||||
m.Auth(aaa.USERROLE, m.Option(ice.MSG_USERROLE), aaa.USERNAME, m.Option(ice.MSG_USERNAME))
|
||||
if arg[0] == "/run/" {
|
||||
return
|
||||
}
|
||||
@ -52,23 +53,20 @@ func init() {
|
||||
}},
|
||||
"/sess": {Name: "/sess", Help: "会话", Actions: ice.Actions{
|
||||
aaa.LOGOUT: {Name: "logout", Help: "退出", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(SESS, mdb.MODIFY, mdb.STATUS, aaa.LOGOUT, ice.Option{mdb.HASH, m.Option(SID)})
|
||||
mdb.HashModify(m, mdb.HASH, m.Option(SID), mdb.STATUS, aaa.LOGOUT)
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, arg ...string) {
|
||||
if m.Option(SID) == "" { // 终端登录
|
||||
m.Option(SID, m.Cmdx(SESS, mdb.CREATE, mdb.STATUS, aaa.LOGIN, m.OptionSimple(aaa.USERNAME, tcp.HOSTNAME, cli.PID, cli.PWD)))
|
||||
m.Option(SID, mdb.HashCreate(m, mdb.STATUS, aaa.LOGIN, m.OptionSimple(aaa.USERNAME, tcp.HOSTNAME, cli.PID, cli.PWD)))
|
||||
} else { // 更新状态
|
||||
m.Cmdy(SESS, mdb.MODIFY, mdb.STATUS, aaa.LOGIN, ice.Option{mdb.HASH, m.Option(SID)})
|
||||
mdb.HashModify(m, mdb.HASH, m.Option(SID), mdb.STATUS, aaa.LOGIN)
|
||||
m.Echo(m.Option(SID))
|
||||
}
|
||||
m.Echo(m.Option(SID))
|
||||
}},
|
||||
SESS: {Name: "sess hash auto prunes", Help: "会话流", Actions: ice.MergeActions(ice.Actions{
|
||||
mdb.PRUNES: {Name: "prunes", Help: "清理", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.OptionFields(m.Config(mdb.FIELD))
|
||||
m.Cmdy(mdb.PRUNES, m.PrefixKey(), "", mdb.HASH, mdb.STATUS, aaa.LOGOUT)
|
||||
mdb.HashPrunesValue(m, mdb.STATUS, aaa.LOGOUT)
|
||||
}},
|
||||
}, mdb.HashAction(mdb.FIELD, "time,hash,status,username,hostname,pid,pwd,grant")), Hand: func(m *ice.Message, arg ...string) {
|
||||
mdb.HashSelect(m, arg...)
|
||||
}},
|
||||
}, mdb.HashAction(mdb.FIELD, "time,hash,status,username,hostname,pid,pwd,grant"))},
|
||||
})
|
||||
}
|
||||
|
@ -3,11 +3,11 @@ package bash
|
||||
import (
|
||||
ice "shylinux.com/x/icebergs"
|
||||
"shylinux.com/x/icebergs/base/aaa"
|
||||
"shylinux.com/x/icebergs/base/cli"
|
||||
"shylinux.com/x/icebergs/base/ctx"
|
||||
"shylinux.com/x/icebergs/base/mdb"
|
||||
"shylinux.com/x/icebergs/base/nfs"
|
||||
"shylinux.com/x/icebergs/base/tcp"
|
||||
"shylinux.com/x/icebergs/base/web"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -18,22 +18,21 @@ const TRASH = "trash"
|
||||
|
||||
func init() {
|
||||
Index.MergeCommands(ice.Commands{
|
||||
"/trash": {Name: "/trash", Help: "回收", Actions: ice.Actions{
|
||||
mdb.INSERT: {Name: "insert from to", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(TRASH, mdb.INSERT, arg)
|
||||
}},
|
||||
}},
|
||||
TRASH: {Name: "TRASH hash path auto prunes", Help: "回收站", Actions: ice.MergeActions(ice.Actions{
|
||||
mdb.INSERT: {Name: "insert from to", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(mdb.INSERT, m.PrefixKey(), "", mdb.HASH, m.OptionSimple(aaa.USERNAME, tcp.HOSTNAME, nfs.SIZE, FROM, TO))
|
||||
mdb.HashCreate(m, m.OptionSimple(aaa.USERNAME, tcp.HOSTNAME, nfs.SIZE, FROM, TO))
|
||||
}},
|
||||
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(cli.SYSTEM, "rm", "-rf", m.Option(TO))
|
||||
m.Cmdy(mdb.DELETE, m.PrefixKey(), "", mdb.HASH, m.OptionSimple(mdb.HASH))
|
||||
if !m.Warn(m.Option(TO) == "", ice.ErrNotValid, TO) {
|
||||
mdb.HashRemove(m, m.OptionSimple(mdb.HASH))
|
||||
nfs.RemoveAll(m, m.Option(TO))
|
||||
}
|
||||
}},
|
||||
mdb.REVERT: {Name: "revert", Help: "恢复", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(cli.SYSTEM, "mv", m.Option(TO), m.Option(FROM))
|
||||
m.Cmdy(mdb.DELETE, m.PrefixKey(), "", mdb.HASH, m.OptionSimple(mdb.HASH))
|
||||
if !m.Warn(m.Option(FROM) == "" && m.Option(TO) == "", ice.ErrNotValid, FROM, TO) {
|
||||
nfs.Rename(m, m.Option(TO), m.Option(FROM))
|
||||
mdb.HashRemove(m, m.OptionSimple(mdb.HASH))
|
||||
}
|
||||
}},
|
||||
mdb.PRUNES: {Name: "prunes before@date", Help: "清理", Hand: func(m *ice.Message, arg ...string) {
|
||||
mdb.HashPrunes(m, func(value ice.Maps) bool {
|
||||
@ -46,9 +45,8 @@ func init() {
|
||||
ctx.ProcessCommand(m, nfs.CAT, []string{}, arg...)
|
||||
ctx.ProcessCommandOpt(m, arg, TO)
|
||||
}},
|
||||
}, mdb.HashAction(mdb.FIELD, "time,hash,username,hostname,size,from,to")), Hand: func(m *ice.Message, arg ...string) {
|
||||
mdb.HashSelect(m, arg...)
|
||||
m.PushAction(nfs.CAT, mdb.REVERT, mdb.REMOVE)
|
||||
}, mdb.HashAction(mdb.FIELD, "time,hash,username,hostname,size,from,to"), web.ApiAction("/trash")), Hand: func(m *ice.Message, arg ...string) {
|
||||
mdb.HashSelect(m, arg...).PushAction(nfs.CAT, mdb.REVERT, mdb.REMOVE)
|
||||
}},
|
||||
})
|
||||
}
|
||||
|
@ -17,9 +17,7 @@ func init() {
|
||||
Index.MergeCommands(ice.Commands{
|
||||
"/favor": {Name: "/favor", Help: "收藏", Actions: ice.Actions{
|
||||
mdb.SELECT: {Name: "select", Help: "主题", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmd(FAVOR, func(value ice.Maps) {
|
||||
m.Echo(value[mdb.ZONE]).Echo(ice.NL)
|
||||
})
|
||||
m.Cmd(FAVOR, func(value ice.Maps) { m.Echo(value[mdb.ZONE]).Echo(ice.NL) })
|
||||
}},
|
||||
mdb.INSERT: {Name: "insert", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmd(FAVOR, mdb.INSERT)
|
||||
@ -29,6 +27,7 @@ func init() {
|
||||
m.Echo("%v\n", m.Option(mdb.ZONE)).Echo("%v:%v:%v:(%v): %v\n",
|
||||
value[nfs.FILE], value[nfs.LINE], "1", value[mdb.NAME], value[mdb.TEXT])
|
||||
})
|
||||
m.Debug("waht %v", m.Result())
|
||||
}},
|
||||
FAVOR: {Name: "favor zone id auto", Help: "收藏夹", Actions: ice.MergeActions(ice.Actions{
|
||||
mdb.INSERT: {Name: "insert zone=数据结构 type name=hi text=hello file line", Help: "添加"},
|
||||
@ -36,9 +35,7 @@ func init() {
|
||||
p := path.Join(m.Option(cli.PWD), m.Option(nfs.FILE))
|
||||
ctx.ProcessCommand(m, code.INNER, []string{path.Dir(p) + ice.PS, path.Base(p), m.Option(nfs.LINE)}, arg...)
|
||||
}},
|
||||
}, mdb.ZoneAction(
|
||||
mdb.SHORT, mdb.ZONE, mdb.FIELD, "time,id,type,name,text,file,line,pwd",
|
||||
)), Hand: func(m *ice.Message, arg ...string) {
|
||||
}, mdb.ZoneAction(mdb.SHORT, mdb.ZONE, mdb.FIELD, "time,id,type,name,text,file,line,pwd")), Hand: func(m *ice.Message, arg ...string) {
|
||||
if mdb.ZoneSelect(m, arg...); len(arg) == 0 {
|
||||
m.Action(mdb.CREATE, mdb.EXPORT, mdb.IMPORT)
|
||||
} else {
|
||||
|
@ -5,7 +5,6 @@ import (
|
||||
|
||||
ice "shylinux.com/x/icebergs"
|
||||
"shylinux.com/x/icebergs/base/cli"
|
||||
"shylinux.com/x/icebergs/base/ctx"
|
||||
"shylinux.com/x/icebergs/base/mdb"
|
||||
kit "shylinux.com/x/toolkits"
|
||||
)
|
||||
@ -15,15 +14,15 @@ const INPUT = "input"
|
||||
func init() {
|
||||
Index.MergeCommands(ice.Commands{
|
||||
"/input": {Name: "/input", Help: "输入法", Hand: func(m *ice.Message, arg ...string) {
|
||||
if m.Cmdy(TAGS, ctx.ACTION, INPUT, arg[0], m.Option("pre")); m.Length() > 0 {
|
||||
m.Cmd(m.PrefixKey(), mdb.INSERT, kit.SimpleKV("", "tags", arg[0], m.Result()))
|
||||
if m.Cmdy(TAGS, INPUT, arg[0], m.Option("pre")); m.Length() > 0 {
|
||||
mdb.HashCreate(m, kit.SimpleKV("", TAGS, arg[0], m.Result()))
|
||||
return // 代码补全
|
||||
}
|
||||
if arg[0] == ice.PT {
|
||||
return
|
||||
}
|
||||
if m.Cmdy("web.code.input.wubi", ctx.ACTION, INPUT, arg[0]); m.Length() > 0 {
|
||||
m.Cmd(m.PrefixKey(), mdb.INSERT, kit.SimpleKV("", "wubi", arg[0], m.Result()))
|
||||
if m.Cmdy("web.code.input.wubi", INPUT, arg[0]); m.Length() > 0 {
|
||||
mdb.HashCreate(m, kit.SimpleKV("", "wubi", arg[0], m.Result()))
|
||||
return // 五笔输入
|
||||
}
|
||||
if arg[0] = strings.TrimSpace(arg[0]); strings.HasPrefix(arg[0], "ice") {
|
||||
@ -31,10 +30,10 @@ func init() {
|
||||
if m.Cmdy(list[1:]); m.IsErrNotFound() {
|
||||
m.SetResult().Cmdy(cli.SYSTEM, list[1:])
|
||||
}
|
||||
if len(m.Resultv()) == 0 {
|
||||
if m.Result() == "" {
|
||||
m.Table()
|
||||
}
|
||||
m.Cmd(m.PrefixKey(), mdb.INSERT, kit.SimpleKV("", "cmds", strings.TrimSpace(strings.Join(list[1:], ice.SP)), m.Result()))
|
||||
mdb.HashCreate(m, kit.SimpleKV("", "cmds", strings.TrimSpace(strings.Join(list[1:], ice.SP)), m.Result()))
|
||||
return // 本地命令
|
||||
}
|
||||
}},
|
||||
|
@ -48,6 +48,10 @@ func init() {
|
||||
TAGS: {Name: "tags zone id auto", Help: "索引", Actions: ice.MergeActions(ice.Actions{
|
||||
"listTags": {Name: "listTags", Help: "索引", Hand: func(m *ice.Message, arg ...string) {
|
||||
kit.Fetch(kit.UnMarshal(m.Option(mdb.TEXT)), func(index int, value ice.Map) {
|
||||
if value == nil {
|
||||
return
|
||||
}
|
||||
m.Debug("what %v", value)
|
||||
m.Cmd(TAGS, mdb.INSERT, mdb.ZONE, value[mdb.ZONE], kit.Simple(value))
|
||||
})
|
||||
m.ProcessRefresh300ms()
|
||||
|
@ -1,39 +1,26 @@
|
||||
package vim
|
||||
|
||||
import (
|
||||
"path"
|
||||
"strings"
|
||||
|
||||
ice "shylinux.com/x/icebergs"
|
||||
"shylinux.com/x/icebergs/base/cli"
|
||||
"shylinux.com/x/icebergs/base/nfs"
|
||||
"shylinux.com/x/icebergs/base/web"
|
||||
"shylinux.com/x/icebergs/core/code"
|
||||
kit "shylinux.com/x/toolkits"
|
||||
)
|
||||
|
||||
func _vim_pkg(m *ice.Message, url string) string {
|
||||
p := path.Join(m.Conf(code.INSTALL, kit.Keym(nfs.PATH)), path.Base(url))
|
||||
return kit.Path(m.Conf(code.INSTALL, kit.Keym(nfs.PATH)), strings.Split(m.Cmdx(cli.SYSTEM, "sh", "-c", kit.Format("tar tf %s| head -n1", p)), "/")[0])
|
||||
}
|
||||
|
||||
const VIM = "vim"
|
||||
|
||||
var Index = &ice.Context{Name: VIM, Help: "编辑器", Configs: ice.Configs{
|
||||
VIM: {Name: VIM, Help: "编辑器", Value: kit.Data(
|
||||
nfs.SOURCE, "http://mirrors.tencent.com/macports/distfiles/vim/vim-8.2.2681.tar.gz",
|
||||
)},
|
||||
}, Commands: ice.Commands{
|
||||
var Index = &ice.Context{Name: VIM, Help: "编辑器", Commands: ice.Commands{
|
||||
VIM: {Name: "vim path auto order build download", Help: "编辑器", Actions: ice.MergeActions(ice.Actions{
|
||||
cli.BUILD: {Name: "build", Help: "构建", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(code.INSTALL, cli.BUILD, _vim_pkg(m, m.Config(nfs.SOURCE)), "--enable-multibyte=yes",
|
||||
m.Cmdy(code.INSTALL, cli.BUILD, m.Config(nfs.SOURCE), "--enable-multibyte=yes",
|
||||
"--enable-pythoninterp=yes", "--enable-luainterp=yes", "--enable-cscope=yes")
|
||||
}},
|
||||
cli.ORDER: {Name: "order", Help: "加载", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(code.INSTALL, cli.ORDER, _vim_pkg(m, m.Config(nfs.SOURCE)), "_install/bin")
|
||||
m.Cmdy(code.INSTALL, cli.ORDER, m.Config(nfs.SOURCE), "_install/bin")
|
||||
}},
|
||||
}, code.InstallAction()), Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(code.INSTALL, nfs.SOURCE, _vim_pkg(m, m.Config(nfs.SOURCE)), arg)
|
||||
}, code.InstallAction(nfs.SOURCE, "http://mirrors.tencent.com/macports/distfiles/vim/vim-8.2.2681.tar.gz")), Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(code.INSTALL, nfs.SOURCE, m.Config(nfs.SOURCE), arg)
|
||||
}},
|
||||
}}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user