From 7c2269d02db1deaf4284dd57c2ca987c3a2a23e1 Mon Sep 17 00:00:00 2001 From: shylinux Date: Sun, 23 Apr 2023 12:06:58 +0800 Subject: [PATCH] opt const --- base/aaa/offer.go | 2 +- base/aaa/totp.go | 2 +- base/cli/daemon.go | 3 ++- base/cli/forever.go | 8 ++++--- base/cli/mirrors.go | 7 +++--- base/cli/qrcode.go | 5 ++-- base/cli/runtime.go | 8 +++---- base/cli/system.go | 17 +++++++------- base/ctx/command.go | 5 ++-- base/ctx/config.go | 39 ++++++++++++++++--------------- base/ctx/display.go | 2 +- base/lex/split.go | 5 ++++ base/log/debug.go | 19 ++++++++------- base/log/log.go | 5 ++-- base/log/watch.go | 5 ++-- base/mdb/mdb.go | 5 ++++ base/ssh/render.go | 5 ++-- base/ssh/script.go | 15 ++++++------ base/web/dream.go | 3 ++- base/web/option.go | 2 +- base/web/serve.go | 3 ++- base/web/share.go | 2 +- base/web/space.go | 9 +++---- base/web/spide.go | 2 +- base/yac/stack.go | 15 ++++++------ base/yac/type.go | 3 ++- base/yac/value.go | 9 +++---- core/chat/cmd.go | 4 ++-- core/chat/grant.go | 6 +++-- core/chat/header.go | 3 ++- core/chat/location.go | 3 ++- core/chat/oauth/oauth.go | 9 +++---- core/chat/sso.go | 3 ++- core/code/autogen.go | 9 +++---- core/code/bench.go | 3 ++- core/code/binpack.go | 8 +++---- core/code/css.go | 2 +- core/code/go.go | 17 +++++++------- core/code/html.go | 2 +- core/code/inner.go | 20 ++++++++-------- core/code/install.go | 2 +- core/code/pprof.go | 5 ++-- core/code/publish.go | 9 +++---- core/code/sh.go | 5 ++-- core/code/vimer.go | 17 +++++++------- core/code/webpack.go | 7 +++--- core/code/xterm.go | 9 +++---- core/wiki/chart.go | 8 ++++--- core/wiki/chart/chain.go | 2 +- core/wiki/chart/label.go | 2 +- core/wiki/chart/sequence.go | 2 +- core/wiki/data.go | 5 ++-- core/wiki/parse.go | 2 +- core/wiki/refer.go | 2 +- core/wiki/spark.go | 5 ++-- core/wiki/wiki.go | 8 +++---- misc/alpha/alpha.go | 5 ++-- misc/bash/configs.go | 5 ++-- misc/bash/download.go | 3 ++- misc/bash/run.go | 23 +++++++++--------- misc/bash/sync.go | 7 +++--- misc/git/configs.go | 5 ++-- misc/git/count.go | 3 ++- misc/git/repos.go | 20 +++++++++------- misc/git/service.go | 9 +++---- misc/git/spide.go | 2 +- misc/git/status.go | 17 +++++++------- misc/git/token.go | 3 ++- misc/git/total.go | 9 +++---- misc/input/input.go | 4 ++-- misc/input/wubi.go | 5 ++-- misc/java/spring.go | 2 +- misc/lark/home.go | 3 ++- misc/lark/msg.go | 3 ++- misc/lark/talk.go | 5 ++-- misc/lex/split.go | 2 +- misc/ssh/channel.go | 3 ++- misc/ssh/connect.go | 5 ++-- misc/ssh/rsa.go | 3 ++- misc/ssh/service.go | 3 ++- misc/ssh/session.go | 3 ++- misc/tmux/session.go | 14 ++++++----- misc/vim/input.go | 6 +++-- misc/vim/sync.go | 2 +- misc/vim/tags.go | 15 ++++++------ misc/webview/webview.go | 5 ++-- misc/xterm/winsize_unix.go | 4 ++++ misc/xterm/winsize_unsupported.go | 6 +++-- misc/xterm/xterm.go | 6 ++--- 89 files changed, 338 insertions(+), 256 deletions(-) diff --git a/base/aaa/offer.go b/base/aaa/offer.go index cbdb1975..4fdacfd7 100644 --- a/base/aaa/offer.go +++ b/base/aaa/offer.go @@ -26,7 +26,7 @@ func init() { return } msg := m.Cmd("", m.Option(mdb.HASH)) - if ls := kit.Split(msg.Append(EMAIL), ice.AT); !m.Warn(msg.Length() == 0 || len(ls) < 2, ice.ErrNotValid, m.Option(mdb.HASH)) { + if ls := kit.Split(msg.Append(EMAIL), mdb.AT); !m.Warn(msg.Length() == 0 || len(ls) < 2, ice.ErrNotValid, m.Option(mdb.HASH)) { m.Cmd(USER, mdb.CREATE, USERNICK, ls[0], USERNAME, msg.Append(EMAIL), USERZONE, ls[1]) m.ProcessOpen(kit.MergeURL2(m.Option(ice.MSG_USERWEB), ice.PS, ice.MSG_SESSID, SessCreate(m, msg.Append(EMAIL)), mdb.HASH, "")) mdb.HashModify(m, m.OptionSimple(mdb.HASH), mdb.STATUS, ACCEPT) diff --git a/base/aaa/totp.go b/base/aaa/totp.go index b04d0967..d18643b9 100644 --- a/base/aaa/totp.go +++ b/base/aaa/totp.go @@ -24,7 +24,7 @@ func _totp_gen(per int64) string { func _totp_get(key string, per int64, num int) string { buf, now := []byte{}, kit.Int64(time.Now().Unix()/per) kit.For(8, func(i int) { buf = append(buf, byte((uint64(now) >> uint64(((7 - i) * 8))))) }) - kit.If(len(key)%8, func(l int) { key += strings.Repeat(ice.EQ, 8-l) }) + kit.If(len(key)%8, func(l int) { key += strings.Repeat(mdb.EQ, 8-l) }) s, _ := base32.StdEncoding.DecodeString(strings.ToUpper(key)) hm := hmac.New(sha1.New, s) hm.Write(buf) diff --git a/base/cli/daemon.go b/base/cli/daemon.go index 83da1467..1ab400d8 100644 --- a/base/cli/daemon.go +++ b/base/cli/daemon.go @@ -8,6 +8,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/ctx" "shylinux.com/x/icebergs/base/gdb" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" kit "shylinux.com/x/toolkits" @@ -24,7 +25,7 @@ func _daemon_exec(m *ice.Message, cmd *exec.Cmd) { cmd.Stderr = w } h := mdb.HashCreate(m.Spawn(), STATUS, START, - ice.CMD, kit.Join(cmd.Args, ice.SP), DIR, cmd.Dir, ENV, kit.Select("", cmd.Env), + ice.CMD, kit.Join(cmd.Args, lex.SP), DIR, cmd.Dir, ENV, kit.Select("", cmd.Env), m.OptionSimple(CMD_INPUT, CMD_OUTPUT, CMD_ERRPUT, mdb.CACHE_CLEAR_ON_EXIT), ) if e := cmd.Start(); m.Warn(e, ice.ErrNotStart, cmd.Args) { diff --git a/base/cli/forever.go b/base/cli/forever.go index 2c5dfd91..2622de69 100644 --- a/base/cli/forever.go +++ b/base/cli/forever.go @@ -6,6 +6,8 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/gdb" + "shylinux.com/x/icebergs/base/lex" + "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" kit "shylinux.com/x/toolkits" "shylinux.com/x/toolkits/logs" @@ -19,7 +21,7 @@ func BinPath(arg ...string) string { } kit.For(arg, func(p string) { list = append(list, kit.Path(p, ice.BIN), kit.Path(p, ice.USR_PUBLISH), kit.Path(p, ice.USR_LOCAL_BIN), kit.Path(p, ice.USR_LOCAL_GO_BIN)) - kit.For(kit.Reverse(strings.Split(ice.Pulse.Cmdx(nfs.CAT, kit.Path(p, ice.ETC_PATH)), ice.NL)), func(l string) { + kit.For(kit.Reverse(strings.Split(ice.Pulse.Cmdx(nfs.CAT, kit.Path(p, ice.ETC_PATH)), lex.NL)), func(l string) { kit.If(strings.TrimSpace(l) != "" && !strings.HasPrefix(strings.TrimSpace(l), "#"), func() { push(kit.Path(p, l)) }) }) }) @@ -36,7 +38,7 @@ func init() { env := []string{PATH, BinPath(""), HOME, kit.Select(kit.Path(""), os.Getenv(HOME))} kit.For(ENV_LIST, func(k string) { kit.If(kit.Env(k) != "", func() { env = append(env, k, kit.Env(k)) }) }) kit.For(os.Environ(), func(v string) { - if ls := kit.Split(v, ice.EQ, ice.EQ); kit.IndexOf(env, ls[0]) == -1 && len(ls) > 1 { + if ls := kit.Split(v, mdb.EQ, mdb.EQ); kit.IndexOf(env, ls[0]) == -1 && len(ls) > 1 { env = append(env, ls[0], ls[1]) } }) @@ -59,7 +61,7 @@ func init() { return } for { - if logs.Println("run %s", kit.Join(arg, ice.SP)); IsSuccess(m.Cmd(SYSTEM, arg)) { + if logs.Println("run %s", kit.Join(arg, lex.SP)); IsSuccess(m.Cmd(SYSTEM, arg)) { logs.Println(ice.EXIT) break } diff --git a/base/cli/mirrors.go b/base/cli/mirrors.go index 5b20cde6..e57bb4f5 100644 --- a/base/cli/mirrors.go +++ b/base/cli/mirrors.go @@ -6,6 +6,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/aaa" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" kit "shylinux.com/x/toolkits" @@ -47,8 +48,8 @@ func release(m *ice.Message) string { } m.Option(nfs.CAT_CONTENT, _release) _release = m.Cmdx(nfs.CAT, "/etc/os-release", kit.Dict(ice.MSG_USERROLE, aaa.ROOT), func(text string, _ int) string { - if ls := kit.Split(text, ice.EQ); len(ls) > 1 { - kit.Switch(ls[0], []string{"ID", "ID_LIKE"}, func() { osid = strings.TrimSpace(ls[1] + ice.SP + osid) }) + if ls := kit.Split(text, mdb.EQ); len(ls) > 1 { + kit.Switch(ls[0], []string{"ID", "ID_LIKE"}, func() { osid = strings.TrimSpace(ls[1] + lex.SP + osid) }) } return text }) @@ -59,7 +60,7 @@ func insert(m *ice.Message, sys, cmd string, arg ...string) bool { return false } if len(arg) > 0 { - m.GoSleep("300ms", mdb.INSERT, kit.Keys(CLI, MIRRORS), "", mdb.ZONE, arg[0], OSID, sys, CMD, cmd+ice.SP+kit.Select(arg[0], arg, 1)) + m.GoSleep("300ms", mdb.INSERT, kit.Keys(CLI, MIRRORS), "", mdb.ZONE, arg[0], OSID, sys, CMD, cmd+lex.SP+kit.Select(arg[0], arg, 1)) } return true } diff --git a/base/cli/qrcode.go b/base/cli/qrcode.go index 2eb272dd..42457abd 100644 --- a/base/cli/qrcode.go +++ b/base/cli/qrcode.go @@ -4,6 +4,7 @@ import ( "encoding/base64" ice "shylinux.com/x/icebergs" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/tcp" "shylinux.com/x/icebergs/misc/qrcode" @@ -25,9 +26,9 @@ func _qrcode_cli(m *ice.Message, text string) { } m.Echo("\033[4%sm \033[0m", kit.Select(bg, fg, col)) } - m.Echo(ice.NL) + m.Echo(lex.NL) } - m.Echo(text).Echo(ice.NL) + m.Echo(text).Echo(lex.NL) } func _qrcode_web(m *ice.Message, text string) string { sc := qrcode.New(text) diff --git a/base/cli/runtime.go b/base/cli/runtime.go index c7dadb46..6d5d7c49 100644 --- a/base/cli/runtime.go +++ b/base/cli/runtime.go @@ -52,17 +52,17 @@ func _runtime_init(m *ice.Message) { } func _runtime_hostinfo(m *ice.Message) { m.Push("nCPU", strings.Count(m.Cmdx(nfs.CAT, "/proc/cpuinfo"), "processor")) - for i, ls := range strings.Split(m.Cmdx(nfs.CAT, "/proc/meminfo"), ice.NL) { + for i, ls := range strings.Split(m.Cmdx(nfs.CAT, "/proc/meminfo"), lex.NL) { if vs := kit.Split(ls, ": "); len(vs) > 1 { if m.Push(strings.TrimSpace(vs[0]), kit.FmtSize(kit.Int64(strings.TrimSpace(vs[1]))*1024)); i > 1 { break } } } - m.Push("uptime", kit.Split(m.Cmdx(SYSTEM, "uptime"), ice.FS)[0]) + m.Push("uptime", kit.Split(m.Cmdx(SYSTEM, "uptime"), mdb.FS)[0]) } func _runtime_diskinfo(m *ice.Message) { - m.Spawn().Split(kit.Replace(m.Cmdx(SYSTEM, "df", "-h"), "Mounted on", "Mountedon"), "", ice.SP, ice.NL).Table(func(index int, value ice.Maps, head []string) { + m.Spawn().Split(kit.Replace(m.Cmdx(SYSTEM, "df", "-h"), "Mounted on", "Mountedon"), "", lex.SP, lex.NL).Table(func(index int, value ice.Maps, head []string) { kit.If(strings.HasPrefix(value["Filesystem"], "/dev"), func() { m.Push("", value, head) }) }) m.RenameAppend("%iused", "piused", "Use%", "Usep") @@ -181,7 +181,7 @@ func init() { }}, ENV: {Hand: func(m *ice.Message, arg ...string) { kit.For(os.Environ(), func(v string) { - ls := strings.SplitN(v, ice.EQ, 2) + ls := strings.SplitN(v, mdb.EQ, 2) m.Push(mdb.NAME, ls[0]).Push(mdb.VALUE, ls[1]) }) m.StatusTimeCount().Sort(mdb.NAME) diff --git a/base/cli/system.go b/base/cli/system.go index 343e4397..6378e8a1 100644 --- a/base/cli/system.go +++ b/base/cli/system.go @@ -10,6 +10,7 @@ import ( "strings" ice "shylinux.com/x/icebergs" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/tcp" @@ -19,7 +20,7 @@ import ( func _path_split(ps string) []string { ps = kit.ReplaceAll(ps, "\\", nfs.PS) - return kit.Split(ps, ice.NL+kit.Select(nfs.DF, ";", strings.Contains(ps, ";")), ice.NL) + return kit.Split(ps, lex.NL+kit.Select(nfs.DF, ";", strings.Contains(ps, ";")), lex.NL) } func _system_cmd(m *ice.Message, arg ...string) *exec.Cmd { bin, env := "", kit.Simple(m.Optionv(CMD_ENV)) @@ -32,7 +33,7 @@ func _system_cmd(m *ice.Message, arg ...string) *exec.Cmd { }) if bin == "" { if text := m.Cmdx(nfs.CAT, ice.ETC_PATH); len(text) > 0 { - if bin = _system_find(m, arg[0], strings.Split(text, ice.NL)...); bin != "" { + if bin = _system_find(m, arg[0], strings.Split(text, lex.NL)...); bin != "" { m.Logs(FIND, "etcpath cmd", bin) } } @@ -89,11 +90,11 @@ func _system_exec(m *ice.Message, cmd *exec.Cmd) { cmd.Stdout, cmd.Stderr = out, err defer func() { m.Push(CMD_OUT, out.String()).Push(CMD_ERR, err.String()) - // m.Echo(strings.TrimRight(out.String(), ice.NL)) + // m.Echo(strings.TrimRight(out.String(), lex.NL)) m.Echo(out.String()) if m.IsErr() { m.Option(ice.MSG_ARGS, kit.Simple(http.StatusBadRequest, cmd.Args, err.String())) - m.Echo(strings.TrimRight(err.String(), ice.NL)) + m.Echo(strings.TrimRight(err.String(), lex.NL)) m.Debug("%s %s", err, out) } }() @@ -160,7 +161,7 @@ func init() { if arg[0] == mdb.FOREACH && arg[1] == "" { return list := map[string]bool{"Terminal.app": true, "Docker.app": true, "Google Chrome.app": true} - for _, p := range strings.Split(m.Cmdx("", nfs.SH, "-c", `ps aux|grep /Applications/|grep -v Cache|grep -v Helper|grep -v Widget|grep -v Extension|grep -v Chrome|grep -v com.app|grep -v grep|grep -o "[^/]*.app"|sort|uniq`), ice.NL) { + for _, p := range strings.Split(m.Cmdx("", nfs.SH, "-c", `ps aux|grep /Applications/|grep -v Cache|grep -v Helper|grep -v Widget|grep -v Extension|grep -v Chrome|grep -v com.app|grep -v grep|grep -o "[^/]*.app"|sort|uniq`), lex.NL) { list[p] = true } for p := range list { @@ -177,7 +178,7 @@ func init() { nfs.PUSH: {Hand: func(m *ice.Message, arg ...string) { for _, p := range arg { if !strings.Contains(m.Cmdx(nfs.CAT, ice.ETC_PATH), p) { - m.Cmd(nfs.PUSH, ice.ETC_PATH, strings.TrimSpace(p)+ice.NL) + m.Cmd(nfs.PUSH, ice.ETC_PATH, strings.TrimSpace(p)+lex.NL) } } m.Cmdy(nfs.CAT, ice.ETC_PATH) @@ -206,12 +207,12 @@ func init() { func SystemFind(m *ice.Message, bin string, dir ...string) string { if text := m.Cmdx(nfs.CAT, ice.ETC_PATH); len(text) > 0 { - dir = append(dir, strings.Split(text, ice.NL)...) + dir = append(dir, strings.Split(text, lex.NL)...) } return _system_find(m, bin, append(dir, _path_split(kit.Env(PATH))...)...) } func SystemExec(m *ice.Message, arg ...string) string { return strings.TrimSpace(m.Cmdx(SYSTEM, arg)) } func SystemCmds(m *ice.Message, cmds string, args ...ice.Any) string { - return strings.TrimRight(m.Cmdx(SYSTEM, "sh", "-c", kit.Format(cmds, args...), ice.Option{CMD_OUTPUT, ""}), ice.NL) + return strings.TrimRight(m.Cmdx(SYSTEM, "sh", "-c", kit.Format(cmds, args...), ice.Option{CMD_OUTPUT, ""}), lex.NL) } func IsSuccess(m *ice.Message) bool { return m.Append(CODE) == "" || m.Append(CODE) == "0" } diff --git a/base/ctx/command.go b/base/ctx/command.go index b2ec1365..93af1834 100644 --- a/base/ctx/command.go +++ b/base/ctx/command.go @@ -6,6 +6,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/aaa" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" kit "shylinux.com/x/toolkits" @@ -69,7 +70,7 @@ func init() { }}, mdb.EXPORT: {Hand: func(m *ice.Message, arg ...string) { TravelCmd(m, func(key, file, line string) { m.Push(mdb.NAME, key).Push(nfs.FILE, file).Push(nfs.LINE, line) }).Sort(mdb.NAME).Table(func(value ice.Maps) { - m.Echo(`%s %s %s;" f`+ice.NL, value[mdb.NAME], value[nfs.FILE], value[nfs.LINE]) + m.Echo(`%s %s %s;" f`+lex.NL, value[mdb.NAME], value[nfs.FILE], value[nfs.LINE]) }).Cmd(nfs.SAVE, nfs.TAGS, m.Result()) }}, }, CmdAction(), aaa.RoleAction()), Hand: func(m *ice.Message, arg ...string) { @@ -137,7 +138,7 @@ func FileURI(dir string) string { func FileCmd(dir string) string { return FileURI(kit.ExtChange(strings.Split(dir, nfs.DF)[0], nfs.GO)) } func AddFileCmd(dir, key string) { ice.Info.File[FileCmd(dir)] = key - if ls := strings.SplitN(path.Join(kit.Slice(kit.Split(FileCmd(dir), nfs.PS), 1, 4)...), ice.AT, 2); len(ls) > 1 { + if ls := strings.SplitN(path.Join(kit.Slice(kit.Split(FileCmd(dir), nfs.PS), 1, 4)...), mdb.AT, 2); len(ls) > 1 { ice.Info.Gomod[ls[0]] = ls[1] } } diff --git a/base/ctx/config.go b/base/ctx/config.go index f1b6c609..084fc6e4 100644 --- a/base/ctx/config.go +++ b/base/ctx/config.go @@ -6,6 +6,7 @@ import ( "strings" ice "shylinux.com/x/icebergs" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" kit "shylinux.com/x/toolkits" @@ -19,47 +20,47 @@ func FormatPretty(v ice.Any, i, n int) string { if n == 0 { list := []string{"{"} kit.For(v, func(k string, v ice.Any) { - list = append(list, kit.Format("%q", k), nfs.DF, FormatPretty(v, 0, 0), ice.FS) + list = append(list, kit.Format("%q", k), nfs.DF, FormatPretty(v, 0, 0), mdb.FS) }) list = list[:len(list)-1] list = append(list, "}") return strings.Join(list, "") } - list := []string{"{", ice.NL} + list := []string{"{", lex.NL} kit.For(v, func(k string, v ice.Any) { - list = append(list, strings.Repeat(ice.TB, i+1), kit.Format("%q", k), nfs.DF) + list = append(list, strings.Repeat(lex.TB, i+1), kit.Format("%q", k), nfs.DF) if i < n && !kit.IsIn(k, mdb.META) && !strings.HasPrefix(k, "_") { list = append(list, FormatPretty(v, i+1, n)) } else { list = append(list, FormatPretty(v, 0, 0)) } - list = append(list, ice.FS, ice.NL) + list = append(list, mdb.FS, lex.NL) }) - list = append(list[:len(list)-2], ice.NL) - list = append(list, strings.Repeat(ice.TB, i), "}") + list = append(list[:len(list)-2], lex.NL) + list = append(list, strings.Repeat(lex.TB, i), "}") return strings.Join(list, "") case []ice.Any: if n == 0 { list := []string{"["} kit.For(v, func(k string, v ice.Any) { - list = append(list, FormatPretty(v, 0, 0), ice.FS) + list = append(list, FormatPretty(v, 0, 0), mdb.FS) }) list = list[:len(list)-1] list = append(list, "]") return strings.Join(list, "") } - list := []string{"[", ice.NL} + list := []string{"[", lex.NL} kit.For(v, func(v ice.Any) { - list = append(list, strings.Repeat(ice.TB, i+1)) + list = append(list, strings.Repeat(lex.TB, i+1)) if i < n { list = append(list, FormatPretty(v, i+1, n)) } else { list = append(list, FormatPretty(v, 0, 0)) } - list = append(list, ice.FS, ice.NL) + list = append(list, mdb.FS, lex.NL) }) - list = append(list[:len(list)-2], ice.NL) - list = append(list, strings.Repeat(ice.TB, i), "]") + list = append(list[:len(list)-2], lex.NL) + list = append(list, strings.Repeat(lex.TB, i), "]") return strings.Join(list, "") case string: return kit.Format(v) @@ -69,21 +70,21 @@ func FormatPretty(v ice.Any, i, n int) string { } } func _config_format_list(m *ice.Message, v ice.Any) string { - list := []string{"{", ice.NL} + list := []string{"{", lex.NL} kit.For(v, func(k string, v ice.Any) { if k == mdb.HASH { - list = append(list, ice.TB, kit.Format("%q", k), nfs.DF, "{", ice.NL) + list = append(list, lex.TB, kit.Format("%q", k), nfs.DF, "{", lex.NL) kit.For(v, func(k string, v ice.Any) { - list = append(list, ice.TB, ice.TB, kit.Format("%q", k), nfs.DF, kit.Format(v), ice.FS, ice.NL) + list = append(list, lex.TB, lex.TB, kit.Format("%q", k), nfs.DF, kit.Format(v), mdb.FS, lex.NL) }) list = list[:len(list)-2] - list = append(list, ice.TB, ice.NL, ice.TB, "}", ice.FS, ice.NL) + list = append(list, lex.TB, lex.NL, lex.TB, "}", mdb.FS, lex.NL) } else { - list = append(list, ice.TB, kit.Format("%q", k), nfs.DF, kit.Format(v), ice.FS, ice.NL) + list = append(list, lex.TB, kit.Format("%q", k), nfs.DF, kit.Format(v), mdb.FS, lex.NL) } }) list = list[:len(list)-2] - list = append(list, ice.NL, "}") + list = append(list, lex.NL, "}") return strings.Join(list, "") } func _config_only(v ice.Any, arg ...string) bool { @@ -139,7 +140,7 @@ func _config_load(m *ice.Message, name string, arg ...string) { func _config_make(m *ice.Message, key string, arg ...string) { msg := m.Spawn(m.Source()) if len(arg) > 1 { - kit.If(strings.HasPrefix(arg[1], ice.AT), func() { arg[1] = msg.Cmdx(nfs.CAT, arg[1][1:]) }) + kit.If(strings.HasPrefix(arg[1], mdb.AT), func() { arg[1] = msg.Cmdx(nfs.CAT, arg[1][1:]) }) mdb.Confv(msg, key, arg[0], kit.Parse(nil, "", arg[1:]...)) } if len(arg) > 0 { diff --git a/base/ctx/display.go b/base/ctx/display.go index bf075108..5e168863 100644 --- a/base/ctx/display.go +++ b/base/ctx/display.go @@ -47,7 +47,7 @@ func DisplayLocal(m displayMessage, file string, arg ...ice.Any) displayMessage return DisplayBase(m, file, arg...) } func DisplayBase(m displayMessage, file string, arg ...ice.Any) displayMessage { - m.Option(ice.MSG_DISPLAY, kit.MergeURL(kit.Select(kit.ExtChange(file, nfs.JS), file, strings.Contains(file, ice.QS)), arg...)) + m.Option(ice.MSG_DISPLAY, kit.MergeURL(kit.Select(kit.ExtChange(file, nfs.JS), file, strings.Contains(file, mdb.QS)), arg...)) return m } func Toolkit(m *ice.Message, arg ...string) { diff --git a/base/lex/split.go b/base/lex/split.go index ef3a24a7..3777aeba 100644 --- a/base/lex/split.go +++ b/base/lex/split.go @@ -85,6 +85,11 @@ func _split_list(m *ice.Message, file string, arg ...string) ice.Map { return list[0].(ice.Map) } +const ( + TB = ice.TB + SP = ice.SP + NL = ice.NL +) const ( SPLIT_SPACE = "split.space" SPLIT_BLOCK = "split.block" diff --git a/base/log/debug.go b/base/log/debug.go index 0f43d48e..b370426a 100644 --- a/base/log/debug.go +++ b/base/log/debug.go @@ -7,6 +7,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" kit "shylinux.com/x/toolkits" @@ -31,16 +32,16 @@ func init() { if index < offset || index >= offset+limit || !strings.Contains(line, kit.Select("", arg, 3)) { return } - ls := strings.SplitN(line, ice.SP, 6) + ls := strings.SplitN(line, lex.SP, 6) if _, e := time.Parse(kit.Split(ice.MOD_TIMES)[0], ls[0]); e != nil || len(ls) < 6 { m.Push(mdb.TIME, "").Push(mdb.ID, "") m.Push(nfs.PATH, "").Push(nfs.FILE, "").Push(nfs.LINE, "") m.Push(ctx.SHIP, "").Push(ctx.ACTION, "").Push(nfs.CONTENT, line) return } - m.Push(mdb.TIME, ls[0]+ice.SP+ls[1]).Push(mdb.ID, ls[2]) + m.Push(mdb.TIME, ls[0]+lex.SP+ls[1]).Push(mdb.ID, ls[2]) m.Push(nfs.PATH, ice.USR_ICEBERGS) - if i := strings.LastIndex(ls[5], ice.SP); strings.HasPrefix(ls[5][i+1:], ice.BASE) || strings.HasPrefix(ls[5][i+1:], ice.CORE) || strings.HasPrefix(ls[5][i+1:], ice.MISC) { + if i := strings.LastIndex(ls[5], lex.SP); strings.HasPrefix(ls[5][i+1:], ice.BASE) || strings.HasPrefix(ls[5][i+1:], ice.CORE) || strings.HasPrefix(ls[5][i+1:], ice.MISC) { m.Push(nfs.FILE, strings.TrimSpace(strings.Split(ls[5][i:], nfs.DF)[0])) m.Push(nfs.LINE, strings.TrimSpace(strings.Split(ls[5][i:], nfs.DF)[1])) ls[5] = ls[5][:i] @@ -52,10 +53,10 @@ func init() { m.Push(nfs.FILE, "base/web/serve.go").Push(nfs.LINE, "62") } if ls[4] == ice.LOG_CMDS { - _ls := strings.SplitN(ls[5], ice.SP, 2) + _ls := strings.SplitN(ls[5], lex.SP, 2) if ls[4], ls[5] = _ls[0], _ls[1]; !unicode.IsDigit(rune(ls[5][0])) { - _ls := strings.SplitN(ls[5], ice.SP, 2) - ls[4], ls[5] = ls[4]+ice.SP+_ls[0], _ls[1] + _ls := strings.SplitN(ls[5], lex.SP, 2) + ls[4], ls[5] = ls[4]+lex.SP+_ls[0], _ls[1] } } m.Push(ctx.SHIP, ls[3]).Push(ctx.ACTION, ls[4]).Push(nfs.CONTENT, ls[5]) @@ -66,9 +67,9 @@ func init() { if len(arg) > 2 && !strings.Contains(line, arg[2]) || index < offset { return } - ls := strings.SplitN(line, ice.SP, 6) - m.Push(mdb.TIME, ls[0]+ice.SP+ls[1]).Push(mdb.ID, ls[2]) - i := strings.LastIndex(ls[5], ice.SP) + ls := strings.SplitN(line, lex.SP, 6) + m.Push(mdb.TIME, ls[0]+lex.SP+ls[1]).Push(mdb.ID, ls[2]) + i := strings.LastIndex(ls[5], lex.SP) m.Push(nfs.PATH, ice.USR_ICEBERGS) m.Push(nfs.FILE, strings.TrimSpace(strings.Split(ls[5][i:], nfs.DF)[0])) m.Push(nfs.LINE, strings.TrimSpace(strings.Split(ls[5][i:], nfs.DF)[1])) diff --git a/base/log/log.go b/base/log/log.go index aaaba506..01990803 100644 --- a/base/log/log.go +++ b/base/log/log.go @@ -6,6 +6,7 @@ import ( "path" ice "shylinux.com/x/icebergs" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" kit "shylinux.com/x/toolkits" @@ -47,11 +48,11 @@ func (f *Frame) Start(m *ice.Message, arg ...string) { } defer bio.Flush() defer fmt.Fprintln(bio) - fmt.Fprint(bio, l.p, ice.SP) + fmt.Fprint(bio, l.p, lex.SP) view := mdb.Confm(m, VIEW, m.Conf(SHOW, kit.Keys(l.l, VIEW))) kit.If(ice.Info.Colors, func() { bio.WriteString(kit.Format(view[PREFIX])) }) defer kit.If(ice.Info.Colors, func() { bio.WriteString(kit.Format(view[SUFFIX])) }) - fmt.Fprint(bio, l.l, ice.SP, l.s) + fmt.Fprint(bio, l.l, lex.SP, l.s) }) } } diff --git a/base/log/watch.go b/base/log/watch.go index d7954593..4d446a0d 100644 --- a/base/log/watch.go +++ b/base/log/watch.go @@ -5,6 +5,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" kit "shylinux.com/x/toolkits" @@ -18,8 +19,8 @@ func init() { stats := map[string]int{} m.Cmd(nfs.CAT, path.Join(ice.VAR_LOG, "watch.log"), func(text string) { ls := kit.Split(text) - m.Push(mdb.TIME, ls[0]+ice.SP+ls[1]).Push(mdb.ID, ls[2]).Push(nfs.SOURCE, kit.Slice(ls, -1)[0]) - m.Push(ctx.SHIP, ls[3]).Push(ctx.ACTION, ls[4]).Push(nfs.CONTENT, kit.Join(kit.Slice(ls, 5, -1), ice.SP)) + m.Push(mdb.TIME, ls[0]+lex.SP+ls[1]).Push(mdb.ID, ls[2]).Push(nfs.SOURCE, kit.Slice(ls, -1)[0]) + m.Push(ctx.SHIP, ls[3]).Push(ctx.ACTION, ls[4]).Push(nfs.CONTENT, kit.Join(kit.Slice(ls, 5, -1), lex.SP)) stats[ls[4]]++ }) m.StatusTimeCount(stats) diff --git a/base/mdb/mdb.go b/base/mdb/mdb.go index fd6489a2..babf0d50 100644 --- a/base/mdb/mdb.go +++ b/base/mdb/mdb.go @@ -129,6 +129,11 @@ const ( JSON = "json" CSV = "csv" SUB = "sub" + + QS = ice.QS + EQ = ice.EQ + AT = ice.AT + FS = ice.FS ) const MDB = "mdb" diff --git a/base/ssh/render.go b/base/ssh/render.go index 672577ca..9f32a324 100644 --- a/base/ssh/render.go +++ b/base/ssh/render.go @@ -5,6 +5,7 @@ import ( "strings" ice "shylinux.com/x/icebergs" + "shylinux.com/x/icebergs/base/lex" kit "shylinux.com/x/toolkits" ) @@ -20,8 +21,8 @@ func Render(msg *ice.Message, cmd string, arg ...ice.Any) (res string) { res = msg.TableEcho().Result() } } - if fmt.Fprint(msg.O, res); !strings.HasSuffix(res, ice.NL) { - fmt.Fprint(msg.O, ice.NL) + if fmt.Fprint(msg.O, res); !strings.HasSuffix(res, lex.NL) { + fmt.Fprint(msg.O, lex.NL) } return res } diff --git a/base/ssh/script.go b/base/ssh/script.go index feef8613..93fb158b 100644 --- a/base/ssh/script.go +++ b/base/ssh/script.go @@ -13,6 +13,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/tcp" @@ -119,7 +120,7 @@ func (f *Frame) scan(m *ice.Message, h, line string) *Frame { continue } if line += bio.Text(); strings.Count(line, "`")%2 == 1 { - line += ice.NL + line += lex.NL ps = f.ps2 continue } @@ -223,8 +224,8 @@ func init() { } }}, PROMPT: {Name: "prompt arg run", Help: "命令提示", Actions: ctx.ConfAction( - PS1, ice.List{"\033[33;44m", mdb.COUNT, ice.AT, tcp.HOSTNAME, "[", mdb.TIME, "]", "\033[5m", TARGET, "\033[0m", "\033[44m", ">", "\033[0m ", "\033[?25h", "\033[32m"}, - PS2, ice.List{mdb.COUNT, ice.SP, TARGET, "> "}, + PS1, ice.List{"\033[33;44m", mdb.COUNT, mdb.AT, tcp.HOSTNAME, "[", mdb.TIME, "]", "\033[5m", TARGET, "\033[0m", "\033[44m", ">", "\033[0m ", "\033[?25h", "\033[32m"}, + PS2, ice.List{mdb.COUNT, lex.SP, TARGET, "> "}, ), Hand: func(m *ice.Message, arg ...string) { if f, ok := m.Target().Server().(*Frame); ok { f.prompt(m, arg...) @@ -237,9 +238,9 @@ func init() { }}, SCREEN: {Name: "screen run text", Help: "输出命令", Hand: func(m *ice.Message, arg ...string) { if f, ok := m.Target().Server().(*Frame); ok { - for _, line := range kit.Split(arg[0], ice.NL, ice.NL) { - fmt.Fprintf(f.pipe, line+ice.NL) - f.printf(m, line+ice.NL) + for _, line := range kit.Split(arg[0], lex.NL, lex.NL) { + fmt.Fprintf(f.pipe, line+lex.NL) + f.printf(m, line+lex.NL) m.Sleep300ms() } m.Echo(f.res) @@ -249,5 +250,5 @@ func init() { } func PrintQRCode(m *ice.Message, url string) { - m.Spawn(ice.OptionSilent()).Cmd(PRINTF, kit.Dict(nfs.CONTENT, ice.NL+ice.Render(m, ice.RENDER_QRCODE, url))).Cmd(PROMPT) + m.Spawn(ice.OptionSilent()).Cmd(PRINTF, kit.Dict(nfs.CONTENT, lex.NL+ice.Render(m, ice.RENDER_QRCODE, url))).Cmd(PROMPT) } diff --git a/base/web/dream.go b/base/web/dream.go index 29745436..5f98fe13 100644 --- a/base/web/dream.go +++ b/base/web/dream.go @@ -10,6 +10,7 @@ import ( "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/ctx" "shylinux.com/x/icebergs/base/gdb" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/tcp" @@ -71,7 +72,7 @@ func _dream_template(m *ice.Message, p string) { switch m.Cmdy(nfs.COPY, path.Join(p, file), path.Join(ice.USR_LOCAL_WORK, m.Option(nfs.TEMPLATE), file)); file { case ice.GO_MOD: nfs.Rewrite(m, path.Join(p, file), func(line string) string { - return kit.Select(line, nfs.MODULE+ice.SP+m.Option(mdb.NAME), strings.HasPrefix(line, nfs.MODULE)) + return kit.Select(line, nfs.MODULE+lex.SP+m.Option(mdb.NAME), strings.HasPrefix(line, nfs.MODULE)) }) } }) diff --git a/base/web/option.go b/base/web/option.go index 6aaee2cd..78f4139e 100644 --- a/base/web/option.go +++ b/base/web/option.go @@ -43,7 +43,7 @@ func MergeURL2(m Message, url string, arg ...ice.Any) string { return kit.MergeURL2(m.Option(ice.MSG_USERWEB), url, arg...) } func MergeLink(m Message, url string, arg ...ice.Any) string { - return kit.MergeURL(strings.Split(MergeURL2(m, url), ice.QS)[0], arg...) + return kit.MergeURL(strings.Split(MergeURL2(m, url), mdb.QS)[0], arg...) } func ProcessPodCmd(m *ice.Message, pod, cmd string, arg ...ice.Any) { m.ProcessOpen(m.MergePodCmd(pod, cmd, arg...)) diff --git a/base/web/serve.go b/base/web/serve.go index df461612..5de00ac0 100644 --- a/base/web/serve.go +++ b/base/web/serve.go @@ -11,6 +11,7 @@ import ( "shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/ssh" @@ -77,7 +78,7 @@ func _serve_handle(key string, cmd *ice.Command, m *ice.Message, w http.Response kit.For(kit.UnMarshal(r.Body), func(k string, v ice.Any) { m.Optionv(k, v) }) default: r.ParseMultipartForm(kit.Int64(kit.Select("4096", r.Header.Get(ContentLength)))) - kit.For(r.PostForm, func(k string, v []string) { _log(FORM, k, kit.Join(v, ice.SP)).Optionv(k, v) }) + kit.For(r.PostForm, func(k string, v []string) { _log(FORM, k, kit.Join(v, lex.SP)).Optionv(k, v) }) } kit.For(r.Cookies(), func(k, v string) { m.Optionv(k, v) }) m.OptionDefault(ice.MSG_HEIGHT, "480", ice.MSG_WIDTH, "320") diff --git a/base/web/share.go b/base/web/share.go index 465a3763..2bc8582c 100644 --- a/base/web/share.go +++ b/base/web/share.go @@ -136,6 +136,6 @@ func ShareLocalFile(m *ice.Message, arg ...string) { cache, size = s.ModTime(), s.Size() } kit.If(p == ice.BIN_ICE_BIN, func() { m.Option(ice.MSG_USERROLE, aaa.TECH) }) - m.Cmd(SPACE, m.Option(ice.POD), SPIDE, ice.DEV, SPIDE_RAW, MergeLink(m, PP(SHARE, PROXY)), SPIDE_PART, m.OptionSimple(ice.POD), nfs.PATH, p, nfs.SIZE, size, CACHE, cache.Format(ice.MOD_TIME), UPLOAD, ice.AT+p) + m.Cmd(SPACE, m.Option(ice.POD), SPIDE, ice.DEV, SPIDE_RAW, MergeLink(m, PP(SHARE, PROXY)), SPIDE_PART, m.OptionSimple(ice.POD), nfs.PATH, p, nfs.SIZE, size, CACHE, cache.Format(ice.MOD_TIME), UPLOAD, mdb.AT+p) m.RenderDownload(kit.Select(p, pp, file.ExistsFile(pp))) } diff --git a/base/web/space.go b/base/web/space.go index 77f978ec..761a2aef 100644 --- a/base/web/space.go +++ b/base/web/space.go @@ -12,6 +12,7 @@ import ( "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/ctx" "shylinux.com/x/icebergs/base/gdb" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/log" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" @@ -42,7 +43,7 @@ func _space_dial(m *ice.Message, dev, name string, arg ...string) { } }).Cost(mdb.COUNT, i, mdb.NEXT, next, tcp.DIAL, dev, LINK, u.String()).Sleep(next) } - }, kit.Join(kit.Simple(SPACE, name), ice.SP)) + }, kit.Join(kit.Simple(SPACE, name), lex.SP)) } func _space_fork(m *ice.Message) { addr := kit.Select(m.R.RemoteAddr, m.R.Header.Get(ice.MSG_USERADDR)) @@ -60,7 +61,7 @@ func _space_fork(m *ice.Message) { gdb.Event(m, SPACE_LOGIN, args) } _space_handle(m, false, name, c) - }, kit.Join(kit.Simple(SPACE, name), ice.SP)) + }, kit.Join(kit.Simple(SPACE, name), lex.SP)) } } func _space_handle(m *ice.Message, safe bool, name string, c *websocket.Conn) { @@ -80,7 +81,7 @@ func _space_handle(m *ice.Message, safe bool, name string, c *websocket.Conn) { msg.Option(ice.MSG_USERROLE, aaa.VOID) } if msg.Option("_exec") == "go" { - m.Go(func() { _space_exec(msg, source, target, c) }, strings.Join(kit.Simple(SPACE, name, msg.Detailv()), ice.SP)) + m.Go(func() { _space_exec(msg, source, target, c) }, strings.Join(kit.Simple(SPACE, name, msg.Detailv()), lex.SP)) } else { _space_exec(msg, source, target, c) } @@ -128,7 +129,7 @@ func _space_send(m *ice.Message, name string, arg ...string) { wait, done := m.Wait(func(msg *ice.Message, arg ...string) { m.Cost(kit.Format("%v->[%v] %v %v", m.Optionv(ice.MSG_SOURCE), name, m.Detailv(), msg.FormatSize())).Copy(msg) }) - h := mdb.HashCreate(m.Spawn(), mdb.TYPE, tcp.SEND, mdb.NAME, kit.Keys(name, m.Target().ID()), mdb.TEXT, kit.Join(arg, ice.SP), kit.Dict(mdb.TARGET, done)) + h := mdb.HashCreate(m.Spawn(), mdb.TYPE, tcp.SEND, mdb.NAME, kit.Keys(name, m.Target().ID()), mdb.TEXT, kit.Join(arg, lex.SP), kit.Dict(mdb.TARGET, done)) defer mdb.HashRemove(m, mdb.HASH, h) if target := kit.Split(name, nfs.PT, nfs.PT); mdb.HashSelectDetail(m, target[0], func(value ice.Map) { if c, ok := value[mdb.TARGET].(*websocket.Conn); !m.Warn(!ok, ice.ErrNotValid, mdb.TARGET) { diff --git a/base/web/spide.go b/base/web/spide.go index b5407dd9..5ea1e33a 100644 --- a/base/web/spide.go +++ b/base/web/spide.go @@ -116,7 +116,7 @@ func _spide_part(m *ice.Message, arg ...string) (string, io.Reader) { if t, e := time.ParseInLocation(ice.MOD_TIME, arg[i+1], time.Local); !m.Warn(e, ice.ErrNotValid) { cache = t } - } else if strings.HasPrefix(arg[i+1], ice.AT) { + } else if strings.HasPrefix(arg[i+1], mdb.AT) { if s, e := nfs.StatFile(m, arg[i+1][1:]); !m.Warn(e, ice.ErrNotValid) { if s.Size() == size && s.ModTime().Before(cache) { continue diff --git a/base/yac/stack.go b/base/yac/stack.go index 6f718e15..ac3b9879 100644 --- a/base/yac/stack.go +++ b/base/yac/stack.go @@ -9,6 +9,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" kit "shylinux.com/x/toolkits" @@ -163,15 +164,15 @@ func (s *Stack) reads(m *ice.Message, cb func(k string) bool) { if s.skip++; s.skip < len(s.rest) { if k, v := s.rest[s.skip], kit.Select("", s.rest, s.skip+1); k == "`" { if len(block) > 0 { - kit.If(s.line != last, func() { block, last = append(block, ice.NL), s.line }) + kit.If(s.line != last, func() { block, last = append(block, lex.NL), s.line }) block = append(block, k) - cb(strings.Join(block, ice.SP)) + cb(strings.Join(block, lex.SP)) block = block[:0] } else { block = append(block, k) } } else if len(block) > 0 { - kit.If(s.line != last, func() { block, last = append(block, ice.NL), s.line }) + kit.If(s.line != last, func() { block, last = append(block, lex.NL), s.line }) block = append(block, k) } else if k == "*" && v == nfs.PS { comment = false @@ -592,11 +593,11 @@ func StackHandler(m *ice.Message, arg ...string) { script = append(script, kit.Format("Volcanos(\"%s\", {", kit.TrimExt(path.Base(p), nfs.SHY))) kit.For(r, func(s string) { if strings.HasPrefix(s, FUNC) { - script = append(script, ice.TB+strings.Replace(strings.TrimPrefix(s, FUNC+ice.SP), "(", ": function(", 1)) + script = append(script, lex.TB+strings.Replace(strings.TrimPrefix(s, FUNC+lex.SP), "(", ": function(", 1)) } else if strings.HasPrefix(s, END) { - script = append(script, ice.TB+"},") + script = append(script, lex.TB+"},") } else { - script = append(script, ice.TB+s) + script = append(script, lex.TB+s) } }) script = append(script, "})") @@ -607,7 +608,7 @@ func StackHandler(m *ice.Message, arg ...string) { }) if len(script) > 0 { p := ice.USR_SCRIPT + m.PrefixKey() + nfs.PS + "list.js" - m.Cmd(nfs.SAVE, p, kit.Dict(nfs.CONTENT, strings.Join(script, ice.NL))) + m.Cmd(nfs.SAVE, p, kit.Dict(nfs.CONTENT, strings.Join(script, lex.NL))) s.value(m, "_script", "/require/"+p) } cmd := m.Commands("") diff --git a/base/yac/type.go b/base/yac/type.go index 233c08b4..6a7c3e22 100644 --- a/base/yac/type.go +++ b/base/yac/type.go @@ -4,6 +4,7 @@ import ( "strings" ice "shylinux.com/x/icebergs" + "shylinux.com/x/icebergs/base/lex" kit "shylinux.com/x/toolkits" ) @@ -58,7 +59,7 @@ func (s Field) Format() string { } else { res := []string{} kit.For(s.tags, func(k, v string) { res = append(res, kit.Format("%s:\"%s\"", k, v)) }) - return kit.Format("%s `%s`", types, strings.Join(res, ice.SP)) + return kit.Format("%s `%s`", types, strings.Join(res, lex.SP)) } } func (s Function) Operate(op string, v Any) Any { diff --git a/base/yac/value.go b/base/yac/value.go index c934d5ef..fe079162 100644 --- a/base/yac/value.go +++ b/base/yac/value.go @@ -9,6 +9,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/web" @@ -439,7 +440,7 @@ func Format(arg ...Any) string { res = append(res, kit.Format(v)) } } - return strings.Join(res, ice.SP) + return strings.Join(res, lex.SP) } type Message struct{ *ice.Message } @@ -452,9 +453,9 @@ func (m Message) Call(cmd string, arg ...Any) Any { case "Display": file := kit.Format(Trans(arg[0])) if file == "" { - file = kit.Split(_parse_stack(m.Message).name, ice.DF)[0] + file = kit.Split(_parse_stack(m.Message).name, nfs.DF)[0] } else if !strings.HasPrefix(file, nfs.PS) && !strings.HasPrefix(file, ice.HTTP) { - file = path.Join(path.Dir(kit.Split(_parse_stack(m.Message).name, ice.DF)[0]), file) + file = path.Join(path.Dir(kit.Split(_parse_stack(m.Message).name, nfs.DF)[0]), file) } m.Display(ctx.FileURI(file), arg[1:]...) case "DebugStack": @@ -465,7 +466,7 @@ func (m Message) Call(cmd string, arg ...Any) Any { kit.For(f.value, func(k string, v Any) { list = append(list, kit.Format("stack: %s %s:%#v", f.key, k, v)) }) return false }) - m.Debug(ice.NL + strings.Join(list, ice.NL)) + m.Debug(lex.NL + strings.Join(list, lex.NL)) default: msg, args := reflect.ValueOf(m), []reflect.Value{} kit.For(arg, func(v Any) { args = append(args, reflect.ValueOf(v)) }) diff --git a/core/chat/cmd.go b/core/chat/cmd.go index bce87fef..de05d867 100644 --- a/core/chat/cmd.go +++ b/core/chat/cmd.go @@ -23,9 +23,9 @@ func _cmd_file(m *ice.Message, arg ...string) bool { ctx.DisplayBase(m, ctx.FileURI(p)) web.RenderCmd(m, kit.Select(ice.CAN_PLUGIN, ctx.GetFileCmd(p))) default: - if p = strings.TrimPrefix(p, ice.SRC+ice.PS); nfs.Exists(m, path.Join(ice.SRC, p)) { + if p = strings.TrimPrefix(p, ice.SRC+nfs.PS); nfs.Exists(m, path.Join(ice.SRC, p)) { if msg := m.Cmd(mdb.ENGINE, kit.Ext(p)); msg.Length() > 0 { - m.Cmdy(mdb.ENGINE, kit.Ext(p), p, ice.SRC+ice.PS).RenderResult() + m.Cmdy(mdb.ENGINE, kit.Ext(p), p, ice.SRC+nfs.PS).RenderResult() break } } diff --git a/core/chat/grant.go b/core/chat/grant.go index 1f3fa173..9225c7a9 100644 --- a/core/chat/grant.go +++ b/core/chat/grant.go @@ -5,7 +5,9 @@ import ( "shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/gdb" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" + "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/tcp" "shylinux.com/x/icebergs/base/web" ) @@ -32,10 +34,10 @@ func init() { m.Option(ice.MSG_USERUA, msg.Append(ice.MSG_USERUA)) } m.Cmd(web.SPACE, m.Option(web.SPACE), ice.MSG_SESSID, aaa.SessCreate(m, m.Option(ice.MSG_USERNAME))) - m.ProcessLocation(web.MergeURL2(m, ice.PS)) + m.ProcessLocation(web.MergeURL2(m, nfs.PS)) }}, }, gdb.EventAction(web.SPACE_LOGIN), aaa.RoleAction(CONFIRM)), Hand: func(m *ice.Message, arg ...string) { - m.Echo("请授权: %s 访问设备: %s", arg[0], ice.Info.Hostname).Echo(ice.NL).EchoButton(CONFIRM) + m.Echo("请授权: %s 访问设备: %s", arg[0], ice.Info.Hostname).Echo(lex.NL).EchoButton(CONFIRM) }}, }) } diff --git a/core/chat/header.go b/core/chat/header.go index f82a4f2d..8c1a9f3c 100644 --- a/core/chat/header.go +++ b/core/chat/header.go @@ -8,6 +8,7 @@ import ( "shylinux.com/x/icebergs/base/ctx" "shylinux.com/x/icebergs/base/gdb" "shylinux.com/x/icebergs/base/mdb" + "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/tcp" "shylinux.com/x/icebergs/base/web" kit "shylinux.com/x/toolkits" @@ -86,7 +87,7 @@ func init() { msg := m.Cmd(aaa.USER, m.Option(ice.MSG_USERNAME)) kit.For([]string{aaa.USERNICK, aaa.LANGUAGE}, func(k string) { m.Option(k, msg.Append(k)) }) for _, k := range []string{aaa.BACKGROUND, aaa.AVATAR} { - if strings.HasPrefix(msg.Append(k), ice.PS) || strings.HasPrefix(msg.Append(k), ice.HTTP) { + if strings.HasPrefix(msg.Append(k), nfs.PS) || strings.HasPrefix(msg.Append(k), ice.HTTP) { m.Option(k, msg.Append(k)) } else if msg.Append(k) != "" && aaa.Right(m.Spawn(), msg.Append(k)) { m.Option(k, web.SHARE_LOCAL+k) diff --git a/core/chat/location.go b/core/chat/location.go index d301e307..9e8526c7 100644 --- a/core/chat/location.go +++ b/core/chat/location.go @@ -8,6 +8,7 @@ import ( "shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/ctx" "shylinux.com/x/icebergs/base/mdb" + "shylinux.com/x/icebergs/base/nfs" kit "shylinux.com/x/toolkits" ) @@ -66,7 +67,7 @@ func init() { m.Echo(get(m, "place/v1/search", m.OptionSimple("keyword,boundary,page_index"))) }}, "direction": {Name: "direction", Help: "导航", Hand: func(m *ice.Message, arg ...string) { - m.Echo(get(m, "direction/v1/"+m.Option(mdb.TYPE)+ice.PS, m.OptionSimple("from,to"))) + m.Echo(get(m, "direction/v1/"+m.Option(mdb.TYPE)+nfs.PS, m.OptionSimple("from,to"))) }}, "district": {Name: "district", Help: "地区", Hand: func(m *ice.Message, arg ...string) { m.Echo(get(m, "district/v1/getchildren", m.OptionSimple(mdb.ID))) diff --git a/core/chat/oauth/oauth.go b/core/chat/oauth/oauth.go index 8db8170b..3c60275f 100644 --- a/core/chat/oauth/oauth.go +++ b/core/chat/oauth/oauth.go @@ -9,6 +9,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/ssh" @@ -20,15 +21,15 @@ import ( func _merge_url(m *ice.Message, domain, key string, arg ...ice.Any) string { if domain == "" { if m.Option(ice.MSG_USERPOD) == "" { - domain = web.MergeLink(m, ice.PS) + domain = web.MergeLink(m, nfs.PS) } else { domain = web.MergeLink(m, "/chat/pod/"+m.Option(ice.MSG_USERPOD)) } } - if domain = strings.TrimSuffix(domain, ice.PS); strings.Contains(domain, "/chat/pod/") { + if domain = strings.TrimSuffix(domain, nfs.PS); strings.Contains(domain, "/chat/pod/") { domain += web.P(strings.TrimPrefix(m.Prefix(web.P(key)), "web.chat.")) } else { - domain += path.Join(strings.TrimPrefix(strings.Replace(m.Target().Prefix(), ice.PT, ice.PS, -1), "web"), path.Join(key)) + domain += path.Join(strings.TrimPrefix(strings.Replace(m.Target().Prefix(), nfs.PT, nfs.PS, -1), "web"), path.Join(key)) } return kit.MergeURL(domain, arg...) } @@ -156,7 +157,7 @@ var Index = &ice.Context{Name: OAUTH, Help: "认证授权", Commands: ice.Comman } }}, web.P(USERINFO): {Name: "/userinfo Authorization", Help: "信息", Hand: func(m *ice.Message, arg ...string) { - if ls := strings.SplitN(m.R.Header.Get(web.Authorization), ice.SP, 2); m.Warn(len(ls) != 2 || ls[1] == "", ice.ErrNotFound, web.Bearer) { + if ls := strings.SplitN(m.R.Header.Get(web.Authorization), lex.SP, 2); m.Warn(len(ls) != 2 || ls[1] == "", ice.ErrNotFound, web.Bearer) { m.RenderStatusBadRequest() // 参数错误 } else if msg := m.Cmd(ACCESS, ls[1]); msg.Append(mdb.TIME) < m.Time() { diff --git a/core/chat/sso.go b/core/chat/sso.go index 0bc955db..2ce14ef5 100644 --- a/core/chat/sso.go +++ b/core/chat/sso.go @@ -7,6 +7,7 @@ import ( "shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/mdb" + "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/web" kit "shylinux.com/x/toolkits" ) @@ -31,6 +32,6 @@ func GetSSO(m *ice.Message) string { if !strings.Contains(link, web.PP(CHAT, POD)) { return "" } - ls := strings.Split(kit.ParseURL(link).Path, ice.PS) + ls := strings.Split(kit.ParseURL(link).Path, nfs.PS) return kit.MergeURL2(link, web.P(CHAT, SSO), web.SPACE, kit.Select("", ls, 3), cli.BACK, m.R.Header.Get(web.Referer)) } diff --git a/core/code/autogen.go b/core/code/autogen.go index 891b27f3..7a7460de 100644 --- a/core/code/autogen.go +++ b/core/code/autogen.go @@ -8,6 +8,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/cli" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/ssh" @@ -27,7 +28,7 @@ func _autogen_list(m *ice.Message) string { } func _autogen_source(m *ice.Message, main, file string) { m.Cmd(nfs.DEFS, main, nfs.Template(m, ice.SRC_MAIN_SHY)) - m.Cmd(nfs.PUSH, main, ssh.SOURCE+ice.SP+strings.TrimPrefix(file, ice.SRC+ice.PS)+ice.NL) + m.Cmd(nfs.PUSH, main, ssh.SOURCE+lex.SP+strings.TrimPrefix(file, ice.SRC+nfs.PS)+lex.NL) } func _autogen_script(m *ice.Message, file string) { m.Cmd(nfs.DEFS, file, nfs.Template(m, "demo.shy")) } func _autogen_module(m *ice.Message, file string) { m.Cmd(nfs.DEFS, file, nfs.Template(m, "demo.go")) } @@ -47,7 +48,7 @@ func _autogen_import(m *ice.Message, main string, ctx string, mod string) { done, list = true, append(list, kit.Format(`import _ "%s/src/%s"`, mod, ctx)) } }) - m.Cmd(nfs.SAVE, main, kit.Join(list, ice.NL)) + m.Cmd(nfs.SAVE, main, kit.Join(list, lex.NL)) m.Cmd(cli.SYSTEM, "goimports", "-w", main) } func _autogen_version(m *ice.Message) string { @@ -70,7 +71,7 @@ func _autogen_gits(m *ice.Message, arg ...string) string { kit.For(_autogen_git(m, arg...), func(k, v string) { res = append(res, kit.Format(` %s: "%s",`, kit.Capital(k), strings.TrimSpace(v))) }) - return kit.Join(res, ice.NL) + return kit.Join(res, lex.NL) } func _autogen_git(m *ice.Message, arg ...string) ice.Map { return kit.Dict(arg, @@ -92,7 +93,7 @@ func _autogen_mod(m *ice.Message, file string) (mod string) { } m.Cmd(nfs.DEFS, file, nfs.Template(m, ice.GO_MOD, host)) m.Cmd(nfs.CAT, file, func(line string) { - kit.If(strings.HasPrefix(line, nfs.MODULE), func() { mod = kit.Split(line, ice.SP)[1] }) + kit.If(strings.HasPrefix(line, nfs.MODULE), func() { mod = kit.Split(line, lex.SP)[1] }) }) return } diff --git a/core/code/bench.go b/core/code/bench.go index f33cb6a8..6ab71830 100644 --- a/core/code/bench.go +++ b/core/code/bench.go @@ -8,6 +8,7 @@ import ( "sync/atomic" ice "shylinux.com/x/icebergs" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" kit "shylinux.com/x/toolkits" @@ -18,7 +19,7 @@ func _bench_http(m *ice.Message, target string, arg ...string) { nconn := kit.Int64(kit.Select("10", m.Option(NCONN))) nreqs := kit.Int64(kit.Select("100", m.Option(NREQS))) list := []*http.Request{} - for _, v := range strings.Split(target, ice.NL) { + for _, v := range strings.Split(target, lex.NL) { switch ls := kit.Split(v); ls[0] { case http.MethodPost: if f, e := nfs.OpenFile(m, ls[2]); m.Assert(e) { diff --git a/core/code/binpack.go b/core/code/binpack.go index 91da8a6c..871518b6 100644 --- a/core/code/binpack.go +++ b/core/code/binpack.go @@ -59,14 +59,14 @@ func _binpack_all(m *ice.Message) { list, cache := map[string]string{}, kit.Select(ice.USR_REQUIRE, m.Cmdx(cli.SYSTEM, GO, "env", "GOMODCACHE")) const _mod_ = "/pkg/mod/" for k := range ice.Info.File { - switch ls := kit.Split(k, ice.PS); ls[1] { + switch ls := kit.Split(k, nfs.PS); ls[1] { case ice.SRC: case ice.USR: list[path.Join(kit.Slice(ls, 1, -1)...)] = "" default: p := path.Join(cache, path.Join(kit.Slice(ls, 1, -1)...)) - _ls := strings.Split(strings.Split(p, _mod_)[1], ice.PS) - list[path.Join(nfs.USR, strings.Split(_ls[2], ice.AT)[0], path.Join(kit.Slice(_ls, 3)...))] = p + _ls := strings.Split(strings.Split(p, _mod_)[1], nfs.PS) + list[path.Join(nfs.USR, strings.Split(_ls[2], mdb.AT)[0], path.Join(kit.Slice(_ls, 3)...))] = p } } for _, k := range kit.SortedKey(list) { @@ -76,7 +76,7 @@ func _binpack_all(m *ice.Message) { }) } mdb.HashSelects(m).Sort(nfs.PATH).Table(func(value ice.Maps) { - if strings.HasSuffix(value[nfs.PATH], ice.PS) { + if strings.HasSuffix(value[nfs.PATH], nfs.PS) { _binpack_dir(m, w, value[nfs.PATH]) } else { _binpack_file(m, w, value[nfs.PATH]) diff --git a/core/code/css.go b/core/code/css.go index 51d1605e..91f709c0 100644 --- a/core/code/css.go +++ b/core/code/css.go @@ -55,7 +55,7 @@ func _css_show(m *ice.Message, arg ...string) { func _css_exec(m *ice.Message, arg ...string) { if arg[2] == ice.USR_VOLCANOS { if strings.HasPrefix(arg[1], ice.PLUGIN_LOCAL) { - ctx.ProcessCommand(m, kit.Select(ice.CAN_PLUGIN, "web."+strings.Replace(kit.TrimExt(strings.TrimPrefix(arg[1], ice.PLUGIN_LOCAL), JS), ice.PS, ice.PT, -1)), kit.Simple()) + ctx.ProcessCommand(m, kit.Select(ice.CAN_PLUGIN, "web."+strings.Replace(kit.TrimExt(strings.TrimPrefix(arg[1], ice.PLUGIN_LOCAL), JS), nfs.PS, nfs.PT, -1)), kit.Simple()) } } else { ctx.ProcessCommand(m, kit.Select(ice.CAN_PLUGIN, ctx.GetFileCmd(kit.ExtChange(path.Join(arg[2], arg[1]), GO))), kit.Simple()) diff --git a/core/code/go.go b/core/code/go.go index 6a596154..d40d5cef 100644 --- a/core/code/go.go +++ b/core/code/go.go @@ -7,6 +7,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/yac" @@ -39,9 +40,9 @@ func _go_complete(m *ice.Message, arg ...string) { ) if m.Option(mdb.TEXT) == "" { m.Push(mdb.TEXT, PACKAGE, IMPORT, CONST, TYPE, FUNC, VAR) - } else if strings.HasSuffix(m.Option(mdb.TEXT), ice.PT) { + } else if strings.HasSuffix(m.Option(mdb.TEXT), nfs.PT) { msg := m.Cmd(cli.SYSTEM, GO, "doc", _go_trans(m, kit.Slice(kit.Split(m.Option(mdb.TEXT), "\t ."), -1)[0])) - for _, l := range strings.Split(kit.Select(msg.Result(), msg.Append(cli.CMD_OUT)), ice.NL) { + for _, l := range strings.Split(kit.Select(msg.Result(), msg.Append(cli.CMD_OUT)), lex.NL) { if ls := kit.Split(l, "\t *", "()"); len(ls) > 1 { kit.Switch(ls[0], []string{CONST, TYPE, FUNC, VAR}, func() { kit.If(ls[1] == "(", func() { m.Push(mdb.NAME, ls[5]) }, func() { m.Push(mdb.NAME, ls[1]) }) @@ -51,8 +52,8 @@ func _go_complete(m *ice.Message, arg ...string) { } } else { m.Push(mdb.TEXT, "m", "msg", "code", "wiki", "chat", "team", "mall", "arg", "aaa", "cli", "ctx", "mdb", "nfs", "web", "ice", "kit") - for _, l := range strings.Split(m.Cmdx(cli.SYSTEM, GO, "list", "std"), ice.NL) { - m.Push(mdb.TEXT, kit.Slice(kit.Split(l, ice.PS), -1)[0]) + for _, l := range strings.Split(m.Cmdx(cli.SYSTEM, GO, "list", "std"), lex.NL) { + m.Push(mdb.TEXT, kit.Slice(kit.Split(l, nfs.PS), -1)[0]) } } } @@ -109,8 +110,8 @@ func init() { return cmds, text := "ice.bin source stdio", ctx.GetFileCmd(path.Join(arg[2], arg[1])) if text != "" { - ls := strings.Split(text, ice.PT) - text = "~" + kit.Join(kit.Slice(ls, 0, -1), ice.PT) + ice.NL + kit.Slice(ls, -1)[0] + ls := strings.Split(text, nfs.PT) + text = "~" + kit.Join(kit.Slice(ls, 0, -1), nfs.PT) + lex.NL + kit.Slice(ls, -1)[0] } else { text = "cli.system go run " + path.Join(arg[2], arg[1]) } @@ -134,9 +135,9 @@ func init() { COMPLETE: {Hand: func(m *ice.Message, arg ...string) { _go_complete(m, arg...) }}, NAVIGATE: {Hand: func(m *ice.Message, arg ...string) { for _, cmd := range []string{"guru", "gopls"} { - if ls := kit.Split(m.Cmdx(cli.SYSTEM, cmd, "definition", m.Option(nfs.PATH)+m.Option(nfs.FILE)+ice.DF+"#"+m.Option("offset")), ice.DF); len(ls) > 0 { + if ls := kit.Split(m.Cmdx(cli.SYSTEM, cmd, "definition", m.Option(nfs.PATH)+m.Option(nfs.FILE)+nfs.DF+"#"+m.Option("offset")), nfs.DF); len(ls) > 0 { if strings.HasPrefix(ls[0], kit.Path("")) { - _ls := nfs.SplitPath(m, strings.TrimPrefix(ls[0], kit.Path("")+ice.PS)) + _ls := nfs.SplitPath(m, strings.TrimPrefix(ls[0], kit.Path("")+nfs.PS)) m.Push(nfs.PATH, _ls[0]).Push(nfs.FILE, _ls[1]).Push(nfs.LINE, ls[1]) return } diff --git a/core/code/html.go b/core/code/html.go index b34315a7..77987a3e 100644 --- a/core/code/html.go +++ b/core/code/html.go @@ -10,7 +10,7 @@ import ( kit "shylinux.com/x/toolkits" ) -func require(arg ...string) string { return path.Join(ice.PS, ice.REQUIRE, path.Join(arg...)) } +func require(arg ...string) string { return path.Join(nfs.PS, ice.REQUIRE, path.Join(arg...)) } const HTML = "html" diff --git a/core/code/inner.go b/core/code/inner.go index 6c9f20f9..1df1c317 100644 --- a/core/code/inner.go +++ b/core/code/inner.go @@ -27,11 +27,11 @@ func _inner_exec(m *ice.Message, ext, file, dir string) { kit.If(aaa.Right(m, dir, file), func() { m.Cmdy(mdb.ENGINE, ext, file, dir) }) } func _inner_tags(m *ice.Message, dir string, value string) { - for _, l := range strings.Split(m.Cmdx(cli.SYSTEM, cli.GREP, "^"+value+"\\>", nfs.TAGS, dir), ice.NL) { + for _, l := range strings.Split(m.Cmdx(cli.SYSTEM, cli.GREP, "^"+value+"\\>", nfs.TAGS, dir), lex.NL) { if strings.HasPrefix(l, "!_") { continue } - ls := strings.SplitN(l, ice.TB, 3) + ls := strings.SplitN(l, lex.TB, 3) if len(ls) < 3 { continue } @@ -86,8 +86,8 @@ func init() { case ice.CMD: m.Cmd(ctx.COMMAND, mdb.SEARCH, ctx.COMMAND, ice.OptionFields(ctx.INDEX), func(value ice.Maps) { if strings.HasPrefix(value[ctx.INDEX], kit.Select("", arg, 1)) { - ls := kit.Split(strings.TrimPrefix(value[ctx.INDEX], kit.Select("", arg, 1)), ice.PT) - m.Push(arg[0], ls[0]+kit.Select("", ice.PT, len(ls) > 1)) + ls := kit.Split(strings.TrimPrefix(value[ctx.INDEX], kit.Select("", arg, 1)), nfs.PT) + m.Push(arg[0], ls[0]+kit.Select("", nfs.PT, len(ls) > 1)) } }) case ctx.INDEX: @@ -102,7 +102,7 @@ func init() { kit.If(strings.HasPrefix(p, bind[1]), func() { m.Cmdy(nfs.DIR, strings.Replace(p, bind[1], bind[0], 1), nfs.DIR_CLI_FIELDS) }) case nfs.FILE: m.Option(nfs.DIR_DEEP, ice.TRUE) - m.Cmdy(nfs.DIR, path.Join(m.Option(nfs.PATH), kit.Select(path.Dir(p), p, strings.HasSuffix(p, ice.PS))+ice.PS), nfs.PATH) + m.Cmdy(nfs.DIR, path.Join(m.Option(nfs.PATH), kit.Select(path.Dir(p), p, strings.HasSuffix(p, nfs.PS))+nfs.PS), nfs.PATH) default: m.Cmdy(FAVOR, mdb.INPUTS, arg) } @@ -116,14 +116,14 @@ func init() { m.Cmdy(NAVIGATE, kit.Ext(m.Option(mdb.FILE)), m.Option(nfs.FILE), m.Option(nfs.PATH)) }}, }, ctx.CmdAction(), aaa.RoleAction()), Hand: func(m *ice.Message, arg ...string) { - if arg[0] = strings.Split(arg[0], ice.FS)[0]; !strings.HasSuffix(arg[0], ice.PS) && len(arg) == 1 { - arg[1] = kit.Slice(strings.Split(arg[0], ice.PS), -1)[0] + if arg[0] = strings.Split(arg[0], mdb.FS)[0]; !strings.HasSuffix(arg[0], nfs.PS) && len(arg) == 1 { + arg[1] = kit.Slice(strings.Split(arg[0], nfs.PS), -1)[0] arg[0] = strings.TrimSuffix(arg[0], arg[1]) ctx.ProcessRewrite(m, nfs.PATH, arg[0], nfs.FILE, arg[1]) } else if len(arg) < 2 { nfs.Dir(m, nfs.PATH) } else { - arg[1] = strings.Split(arg[1], ice.FS)[0] + arg[1] = strings.Split(arg[1], mdb.FS)[0] _inner_list(m, kit.Ext(arg[1]), arg[1], arg[0]) ctx.DisplayLocal(m, "").Option(REPOS, kit.Join(m.Cmd(REPOS, ice.OptionFields(nfs.PATH)).Sort(nfs.PATH).Appendv(nfs.PATH))) } @@ -157,11 +157,11 @@ func LoadPlug(m *ice.Message, lang ...string) { } } func TagsList(m *ice.Message, cmds ...string) { - for _, l := range strings.Split(m.Cmdx(cli.SYSTEM, kit.Default(cmds, "ctags", "--excmd=number", "--sort=no", "-f", "-", path.Join(m.Option(nfs.PATH), m.Option(nfs.FILE)))), ice.NL) { + for _, l := range strings.Split(m.Cmdx(cli.SYSTEM, kit.Default(cmds, "ctags", "--excmd=number", "--sort=no", "-f", "-", path.Join(m.Option(nfs.PATH), m.Option(nfs.FILE)))), lex.NL) { if strings.HasPrefix(l, "!_") { continue } - ls := strings.Split(l, ice.TB) + ls := strings.Split(l, lex.TB) if len(ls) < 3 { continue } diff --git a/core/code/install.go b/core/code/install.go index 51c23498..27f4f235 100644 --- a/core/code/install.go +++ b/core/code/install.go @@ -22,7 +22,7 @@ func _install_path(m *ice.Message, link string) string { if p := path.Join(ice.USR_INSTALL, kit.TrimExt(u.Path)); nfs.Exists(m, p) { return p } else if pp := path.Join(ice.USR_INSTALL, path.Base(u.Path)); nfs.Exists(m, pp) { - return path.Join(ice.USR_INSTALL, strings.Split(m.Cmd(nfs.TAR, pp, "", "1").Append(nfs.FILE), ice.PS)[0]) + return path.Join(ice.USR_INSTALL, strings.Split(m.Cmd(nfs.TAR, pp, "", "1").Append(nfs.FILE), nfs.PS)[0]) } else { return p } diff --git a/core/code/pprof.go b/core/code/pprof.go index bc92f497..5dab1911 100644 --- a/core/code/pprof.go +++ b/core/code/pprof.go @@ -8,6 +8,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/cli" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/tcp" @@ -44,13 +45,13 @@ func init() { } msg := m.Cmd(web.SPIDE, ice.DEV, web.SPIDE_CACHE, http.MethodGet, m.Option(SERVICE), m.OptionSimple(SECONDS)) cmd := kit.Simple(mdb.Configv(m, PPROF), "-text", m.Option(BINNARY), msg.Append(nfs.FILE)) - m.Option(mdb.TEXT, strings.Join(kit.Slice(strings.Split(m.Cmdx(cli.SYSTEM, cmd), ice.NL), 0, 20), ice.NL)) + m.Option(mdb.TEXT, strings.Join(kit.Slice(strings.Split(m.Cmdx(cli.SYSTEM, cmd), lex.NL), 0, 20), lex.NL)) mdb.ZoneInsert(m, m.OptionSimple("zone,text"), msg.AppendSimple(nfs.FILE)) m.Echo(m.Option(mdb.TEXT)).ProcessInner() }}, web.SERVE: {Help: "展示", Hand: func(m *ice.Message, arg ...string) { u := web.UserWeb(m) - p := u.Hostname() + ice.DF + m.Cmdx(tcp.PORT, aaa.RIGHT) + p := u.Hostname() + nfs.DF + m.Cmdx(tcp.PORT, aaa.RIGHT) m.Cmd(cli.DAEMON, mdb.Configv(m, PPROF), "-http="+p, m.Option(BINNARY), m.Option(nfs.FILE)) m.Sleep3s().ProcessOpen(kit.Format("http://%s/ui/top", p)) }}, diff --git a/core/code/publish.go b/core/code/publish.go index c94149b3..bb2b8208 100644 --- a/core/code/publish.go +++ b/core/code/publish.go @@ -10,6 +10,7 @@ import ( "shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/web" @@ -19,8 +20,8 @@ import ( func _publish_bin_list(m *ice.Message) *ice.Message { defer m.SortStrR(mdb.TIME) m.Option(cli.CMD_DIR, ice.USR_PUBLISH) - for _, ls := range strings.Split(cli.SystemCmds(m, "ls |xargs file |grep executable"), ice.NL) { - if file := strings.TrimSpace(strings.Split(ls, ice.DF)[0]); file != "" { + for _, ls := range strings.Split(cli.SystemCmds(m, "ls |xargs file |grep executable"), lex.NL) { + if file := strings.TrimSpace(strings.Split(ls, nfs.DF)[0]); file != "" { if s, e := nfs.StatFile(m, path.Join(ice.USR_PUBLISH, file)); e == nil { m.Push(mdb.TIME, s.ModTime()).Push(nfs.SIZE, kit.FmtSize(s.Size())).Push(nfs.PATH, file) m.PushDownload(mdb.LINK, file, path.Join(ice.USR_PUBLISH, file)).PushButton(nfs.TRASH) @@ -46,7 +47,7 @@ func _publish_file(m *ice.Message, file string, arg ...string) string { func _publish_contexts(m *ice.Message, arg ...string) { m.Option(nfs.DIR_ROOT, "") for _, k := range kit.Default(arg, ice.MISC) { - m.Options(web.DOMAIN, web.UserHost(m), cli.CTX_ENV, kit.Select("", ice.SP+kit.JoinKV(ice.EQ, ice.SP, cli.CTX_POD, m.Option(ice.MSG_USERPOD)), m.Option(ice.MSG_USERPOD) != "")) + m.Options(web.DOMAIN, web.UserHost(m), cli.CTX_ENV, kit.Select("", lex.SP+kit.JoinKV(mdb.EQ, lex.SP, cli.CTX_POD, m.Option(ice.MSG_USERPOD)), m.Option(ice.MSG_USERPOD) != "")) switch k { case INSTALL: m.Echo(strings.TrimSpace(nfs.Template(m, kit.Keys(ice.MISC, SH)))) @@ -73,7 +74,7 @@ func init() { Index.MergeCommands(ice.Commands{ PUBLISH: {Name: "publish path auto create volcanos icebergs intshell", Help: "发布", Actions: ice.MergeActions(ice.Actions{ ice.VOLCANOS: {Help: "火山架", Hand: func(m *ice.Message, arg ...string) { - _publish_list(m, kit.ExtReg(HTML, CSS, JS)).Cmdy("", ice.CONTEXTS, ice.MISC).Echo(ice.NL).EchoQRCode(m.Option(ice.MSG_USERWEB)) + _publish_list(m, kit.ExtReg(HTML, CSS, JS)).Cmdy("", ice.CONTEXTS, ice.MISC).Echo(lex.NL).EchoQRCode(m.Option(ice.MSG_USERWEB)) }}, ice.ICEBERGS: {Help: "冰山架", Hand: func(m *ice.Message, arg ...string) { _publish_bin_list(m).Cmdy("", ice.CONTEXTS, ice.CORE) diff --git a/core/code/sh.go b/core/code/sh.go index e7e1d70b..b9c493b7 100644 --- a/core/code/sh.go +++ b/core/code/sh.go @@ -6,6 +6,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/cli" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/ssh" @@ -15,7 +16,7 @@ import ( func _sh_cmds(m *ice.Message, p string) (string, string) { cmds, text := kit.Select(SH, mdb.Config(m, ssh.SHELL)), kit.Format(strings.TrimSpace(nfs.Template(m, "cmd.sh")), web.UserHost(m), m.Option(ice.MSG_USERPOD), p) - if head := kit.Select("", strings.Split(m.Cmdx(nfs.CAT, p), ice.NL), 0); strings.HasPrefix(head, "#!") { + if head := kit.Select("", strings.Split(m.Cmdx(nfs.CAT, p), lex.NL), 0); strings.HasPrefix(head, "#!") { cmds = strings.TrimSpace(strings.TrimPrefix(head, "#!")) } return cmds, text @@ -44,7 +45,7 @@ func init() { }}, mdb.ENGINE: {Hand: func(m *ice.Message, arg ...string) { cmds, text := _sh_cmds(m, path.Join(arg[2], arg[1])) - m.Cmdy(cli.SYSTEM, cmds, "-c", text).Status(ssh.SHELL, strings.ReplaceAll(text, ice.NL, "; ")) + m.Cmdy(cli.SYSTEM, cmds, "-c", text).Status(ssh.SHELL, strings.ReplaceAll(text, lex.NL, "; ")) }}, TEMPLATE: {Hand: func(m *ice.Message, arg ...string) { m.Echo(nfs.Template(m, "demo.sh")) }}, NAVIGATE: {Hand: func(m *ice.Message, arg ...string) { _c_tags(m, "ctags", "-a", "-R", nfs.PWD) }}, diff --git a/core/code/vimer.go b/core/code/vimer.go index 600f832d..28374814 100644 --- a/core/code/vimer.go +++ b/core/code/vimer.go @@ -9,6 +9,7 @@ import ( "shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/log" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" @@ -20,11 +21,11 @@ import ( func _vimer_make(m *ice.Message, dir string, msg *ice.Message) { defer m.StatusTimeCount() - for _, line := range strings.Split(msg.Append(cli.CMD_ERR), ice.NL) { - if !strings.Contains(line, ice.DF) { + for _, line := range strings.Split(msg.Append(cli.CMD_ERR), lex.NL) { + if !strings.Contains(line, nfs.DF) { continue } - if ls := strings.SplitN(line, ice.DF, 4); len(ls) > 3 { + if ls := strings.SplitN(line, nfs.DF, 4); len(ls) > 3 { for i, p := range kit.Split(dir) { if strings.HasPrefix(ls[0], p) { m.Push(nfs.PATH, p) @@ -32,7 +33,7 @@ func _vimer_make(m *ice.Message, dir string, msg *ice.Message) { m.Push(nfs.LINE, ls[1]) m.Push(mdb.TEXT, ls[3]) break - } else if i == strings.Count(dir, ice.FS) { + } else if i == strings.Count(dir, mdb.FS) { ps := nfs.SplitPath(m, ls[0]) m.Push(nfs.PATH, ps[0]) m.Push(nfs.FILE, ps[1]) @@ -61,7 +62,7 @@ func init() { m.PushSearch(mdb.TYPE, nfs.FILE, mdb.NAME, "main", mdb.TEXT, ice.SRC_MAIN_GO) m.PushSearch(mdb.TYPE, nfs.FILE, mdb.NAME, "main", mdb.TEXT, ice.SRC_MAIN_SH) m.PushSearch(mdb.TYPE, nfs.FILE, mdb.NAME, "main", mdb.TEXT, ice.SRC_MAIN_JS) - m.PushSearch(mdb.TYPE, web.LINK, mdb.NAME, "admin", mdb.TEXT, web.MergeURL2(m, ice.PS, log.DEBUG, ice.TRUE)) + m.PushSearch(mdb.TYPE, web.LINK, mdb.NAME, "admin", mdb.TEXT, web.MergeURL2(m, nfs.PS, log.DEBUG, ice.TRUE)) m.PushSearch(mdb.TYPE, web.LINK, mdb.NAME, m.CommandKey(), mdb.TEXT, m.MergePodCmd("", "", log.DEBUG, ice.TRUE)) } }}, @@ -82,7 +83,7 @@ func init() { case nfs.FILE: list := ice.Map{} push := func(k, p string) { - kit.IfNoKey(list, kit.Select(k, k+ice.DF, k != "")+p, func(p string) { m.Push(nfs.PATH, p) }) + kit.IfNoKey(list, kit.Select(k, k+nfs.DF, k != "")+p, func(p string) { m.Push(nfs.PATH, p) }) } mdb.HashSelect(m.Spawn()).TablesLimit(30, func(value ice.Maps) { push("", value[nfs.PATH]) }) m.Cmd(mdb.SEARCH, mdb.FOREACH, "", ice.OptionFields("type,name,text")).Sort("type,name,text").Table(func(value ice.Maps) { @@ -153,7 +154,7 @@ func init() { isWebview := func() bool { return strings.HasSuffix(os.Args[0], _app) } cmds := []string{COMPILE, ice.SRC_MAIN_GO, ice.BIN_ICE_BIN} if isWebview() { - m.Option(cli.ENV, "CGO_ENABLED", "1", cli.HOME, kit.Env(cli.HOME), cli.PATH, kit.Path(ice.USR_LOCAL_GO_BIN)+ice.DF+kit.Env(cli.PATH)) + m.Option(cli.ENV, "CGO_ENABLED", "1", cli.HOME, kit.Env(cli.HOME), cli.PATH, kit.Path(ice.USR_LOCAL_GO_BIN)+nfs.DF+kit.Env(cli.PATH)) cmds = []string{COMPILE, ice.SRC_WEBVIEW_GO, path.Join(app, _app)} } if msg := m.Cmd(cmds); cli.IsSuccess(msg) { @@ -195,7 +196,7 @@ func init() { }) } func Complete(m *ice.Message, text string, data ice.Map) { - if strings.HasSuffix(text, ice.PT) { + if strings.HasSuffix(text, nfs.PT) { m.Push(mdb.TEXT, kit.Simple(data[kit.Slice(kit.Split(text, " ."), -1)[0]])) } else { m.Push(mdb.TEXT, data[""]) diff --git a/core/code/webpack.go b/core/code/webpack.go index 47a069a7..cc3184ef 100644 --- a/core/code/webpack.go +++ b/core/code/webpack.go @@ -10,6 +10,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" kit "shylinux.com/x/toolkits" @@ -18,7 +19,7 @@ import ( func _volcanos(m *ice.Message, p ...string) string { return ice.USR_VOLCANOS + path.Join(p...) } func _publish(m *ice.Message, p ...string) string { return ice.USR_PUBLISH + path.Join(p...) } func _require(m *ice.Message, p string) string { - return path.Join(ice.PS, strings.TrimPrefix(strings.Replace(p, ice.USR_MODULES, "/require/modules/", 1), ice.USR_VOLCANOS)) + return path.Join(nfs.PS, strings.TrimPrefix(strings.Replace(p, ice.USR_MODULES, "/require/modules/", 1), ice.USR_VOLCANOS)) } func _webpack_css(m *ice.Message, css, js io.Writer, p string) { fmt.Fprintln(css, kit.Format("/* %s */", _require(m, p))) @@ -84,11 +85,11 @@ func _webpack_build(m *ice.Message, name string) { if f, p, e := nfs.CreateFile(m, kit.Keys(name, HTML)); m.Assert(e) { defer f.Close() defer m.Echo(p) - fmt.Fprintf(f, nfs.Template(m, "index.html"), m.Cmdx(nfs.CAT, USR_PUBLISH_CAN_CSS), m.Cmdx(nfs.CAT, USR_PUBLISH_CAN_JS), kit.JoinKV(ice.EQ, ice.NL, + fmt.Fprintf(f, nfs.Template(m, "index.html"), m.Cmdx(nfs.CAT, USR_PUBLISH_CAN_CSS), m.Cmdx(nfs.CAT, USR_PUBLISH_CAN_JS), kit.JoinKV(mdb.EQ, lex.NL, `Volcanos.meta.args`, kit.Formats(kit.Dict(m.OptionSimple(kit.Split(m.Option(ctx.ARGS))...))), `Volcanos.meta.pack`, kit.Formats(kit.UnMarshal(kit.Select("{}", m.Option(nfs.CONTENT)))), `Volcanos.meta.webpack`, ice.TRUE, - )+ice.NL, m.Cmdx(nfs.CAT, ice.SRC_MAIN_JS)) + )+lex.NL, m.Cmdx(nfs.CAT, ice.SRC_MAIN_JS)) } } diff --git a/core/code/xterm.go b/core/code/xterm.go index daeee924..6e55ca56 100644 --- a/core/code/xterm.go +++ b/core/code/xterm.go @@ -8,6 +8,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/log" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" @@ -22,7 +23,7 @@ func _xterm_get(m *ice.Message, h string) *xterm.XTerm { m.Assert(h != "") mdb.HashModify(m, mdb.TIME, m.Time(), web.VIEW, m.Option(ice.MSG_DAEMON)) return mdb.HashSelectTarget(m, h, func(value ice.Maps) ice.Any { - text := strings.Split(value[mdb.TEXT], ice.NL) + text := strings.Split(value[mdb.TEXT], lex.NL) ls := kit.Split(strings.Split(kit.Select(nfs.SH, value[mdb.TYPE]), " # ")[0]) kit.If(value[nfs.PATH] != "" && !strings.HasSuffix(value[nfs.PATH], nfs.PS), func() { value[nfs.PATH] = path.Dir(value[nfs.PATH]) }) term, e := xterm.Command(m, value[nfs.PATH], kit.Select(ls[0], cli.SystemFind(m, ls[0])), ls[1:]...) @@ -32,7 +33,7 @@ func _xterm_get(m *ice.Message, h string) *xterm.XTerm { m.Go(func() { defer term.Close() defer mdb.HashRemove(m, mdb.HASH, h) - m.Log(cli.START, strings.Join(term.Args, ice.SP)) + m.Log(cli.START, strings.Join(term.Args, lex.SP)) buf := make([]byte, ice.MOD_BUFS) for { if n, e := term.Read(buf); !m.Warn(e) && e == nil { @@ -40,7 +41,7 @@ func _xterm_get(m *ice.Message, h string) *xterm.XTerm { if cmd := text[0]; text[0] != "" { m.Go(func() { m.Sleep30ms() - term.Write(cmd + ice.NL) + term.Write(cmd + lex.NL) }) } text = text[1:] @@ -88,7 +89,7 @@ func init() { m.Cmdy(nfs.DIR, ice.USR_LOCAL_REPOS, nfs.PATH) m.Cmdy(nfs.DIR, ice.USR_LOCAL_DAEMON, nfs.PATH) case nfs.FILE: - push := func(arg ...string) { m.Push(nfs.FILE, strings.Join(arg, ice.DF)) } + push := func(arg ...string) { m.Push(nfs.FILE, strings.Join(arg, nfs.DF)) } m.Cmd("", func(value ice.Maps) { kit.If(value[mdb.TYPE] == web.LAYOUT, func() { push(web.LAYOUT, value[mdb.HASH], value[mdb.NAME]) }) }) diff --git a/core/wiki/chart.go b/core/wiki/chart.go index 0735b820..936edab7 100644 --- a/core/wiki/chart.go +++ b/core/wiki/chart.go @@ -4,6 +4,8 @@ import ( "strings" ice "shylinux.com/x/icebergs" + "shylinux.com/x/icebergs/base/lex" + "shylinux.com/x/icebergs/base/mdb" kit "shylinux.com/x/toolkits" ) @@ -32,7 +34,7 @@ func (item *Item) Echo(str string, arg ...ice.Any) *Item { return item } func (item *Item) Dump(m *ice.Message) *ice.Message { - return m.Echo(kit.Join(item.list, ice.SP), item.args...).Echo(ice.NL) + return m.Echo(kit.Join(item.list, lex.SP), item.args...).Echo(lex.NL) } type Group struct{ list ice.Messages } @@ -61,11 +63,11 @@ func (g *Group) EchoLine(group string, x1, y1, x2, y2 int) *ice.Message { } func (g *Group) EchoRect(group string, height, width, x, y int, arg ...string) *ice.Message { // rx ry return g.Echo(group, ``, - height, width, kit.Select("4", arg, 0), kit.Select("4", arg, 1), x, y, kit.JoinKV(ice.EQ, ice.SP, kit.Slice(arg, 2)...)) + height, width, kit.Select("4", arg, 0), kit.Select("4", arg, 1), x, y, kit.JoinKV(mdb.EQ, lex.SP, kit.Slice(arg, 2)...)) } func (g *Group) EchoText(group string, x, y int, text string, arg ...string) *ice.Message { float := kit.Int(kit.Select("2", "6", strings.Contains(g.Get(group).Option(ice.MSG_USERUA), "Chrome"))) - return g.Echo(group, "%s", x, y+float, kit.JoinKV(ice.EQ, ice.SP, arg...), text) + return g.Echo(group, "%s", x, y+float, kit.JoinKV(mdb.EQ, lex.SP, arg...), text) } func (g *Group) EchoTexts(group string, x, y int, text string, arg ...string) *ice.Message { m := g.Get(group) diff --git a/core/wiki/chart/chain.go b/core/wiki/chart/chain.go index 2a29a974..6b617c4b 100644 --- a/core/wiki/chart/chain.go +++ b/core/wiki/chart/chain.go @@ -20,7 +20,7 @@ func (c *Chain) Init(m *ice.Message, arg ...string) wiki.Chart { const _DEEP = "_deep" stack, max := kit.List(kit.Dict(_DEEP, -1, wiki.WIDTH, "0")), 0 last := func(key string) int { return kit.Int(kit.Value(stack[len(stack)-1], key)) } - m.Cmd(lex.SPLIT, "", mdb.TEXT, kit.Dict(lex.SPLIT_BLOCK, ice.SP, nfs.CAT_CONTENT, arg[0]), func(deep int, ls []string, data, root ice.Map) { + m.Cmd(lex.SPLIT, "", mdb.TEXT, kit.Dict(lex.SPLIT_BLOCK, lex.SP, nfs.CAT_CONTENT, arg[0]), func(deep int, ls []string, data, root ice.Map) { for deep <= last(_DEEP) { stack = stack[:len(stack)-1] } diff --git a/core/wiki/chart/label.go b/core/wiki/chart/label.go index 5abc1d2b..d1a51eeb 100644 --- a/core/wiki/chart/label.go +++ b/core/wiki/chart/label.go @@ -17,7 +17,7 @@ type Label struct { func (s *Label) Init(m *ice.Message, arg ...string) wiki.Chart { (&s.Block).Init(m) s.max = map[int]int{} - m.Cmd(lex.SPLIT, "", kit.Dict(lex.SPLIT_BLOCK, ice.SP, nfs.CAT_CONTENT, arg[0]), func(ls []string) { + m.Cmd(lex.SPLIT, "", kit.Dict(lex.SPLIT_BLOCK, lex.SP, nfs.CAT_CONTENT, arg[0]), func(ls []string) { s.data = append(s.data, ls) for i, v := range ls { if w := s.GetWidth(kit.SplitWord(v)[0]); w > s.max[i] { diff --git a/core/wiki/chart/sequence.go b/core/wiki/chart/sequence.go index 8aaae318..fbca99c5 100644 --- a/core/wiki/chart/sequence.go +++ b/core/wiki/chart/sequence.go @@ -26,7 +26,7 @@ func (s *Sequence) push(m *ice.Message, list string, arg ...ice.Any) ice.Map { } func (s *Sequence) Init(m *ice.Message, arg ...string) wiki.Chart { (&s.Block).Init(m) - m.Cmd(lex.SPLIT, "", kit.Dict(lex.SPLIT_BLOCK, ice.SP, nfs.CAT_CONTENT, arg[0]), func(ls []string) { + m.Cmd(lex.SPLIT, "", kit.Dict(lex.SPLIT_BLOCK, lex.SP, nfs.CAT_CONTENT, arg[0]), func(ls []string) { if len(s.head) == 0 { s.head, s.pos = ls, make([]int, len(ls)) for i := 0; i < len(ls); i++ { diff --git a/core/wiki/data.go b/core/wiki/data.go index c31ee966..6df6c3f2 100644 --- a/core/wiki/data.go +++ b/core/wiki/data.go @@ -6,6 +6,7 @@ import ( "path" ice "shylinux.com/x/icebergs" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" kit "shylinux.com/x/toolkits" @@ -23,10 +24,10 @@ func init() { } }}, mdb.CREATE: {Name: "create path field value", Hand: func(m *ice.Message, arg ...string) { - m.Cmd("", nfs.SAVE, m.Option(nfs.PATH), kit.Join(kit.Split(m.Option(mdb.FIELD)))+ice.NL+kit.Join(kit.Split(m.Option(mdb.VALUE)))+ice.NL) + m.Cmd("", nfs.SAVE, m.Option(nfs.PATH), kit.Join(kit.Split(m.Option(mdb.FIELD)))+lex.NL+kit.Join(kit.Split(m.Option(mdb.VALUE)))+lex.NL) }}, nfs.PUSH: {Name: "push path record", Help: "添加", Hand: func(m *ice.Message, arg ...string) { - m.Cmd(nfs.PUSH, path.Join(mdb.Config(m, nfs.PATH), arg[0]), kit.Join(arg[1:], ice.FS)+ice.NL) + m.Cmd(nfs.PUSH, path.Join(mdb.Config(m, nfs.PATH), arg[0]), kit.Join(arg[1:], mdb.FS)+lex.NL) }}, "draw": {Help: "绘图"}, }, WikiAction(ice.USR_LOCAL_EXPORT, nfs.CSV)), Hand: func(m *ice.Message, arg ...string) { kit.If(!_wiki_list(m, arg...), func() { CSV(m, m.Cmdx(nfs.CAT, arg[0])).StatusTimeCount() }) diff --git a/core/wiki/parse.go b/core/wiki/parse.go index 61393198..861fc7ea 100644 --- a/core/wiki/parse.go +++ b/core/wiki/parse.go @@ -29,7 +29,7 @@ func init() { arg[0] = nfs.JSON } else if strings.HasPrefix(arg[1], web.HTTP) { arg[0] = web.HTTP - } else if strings.Contains(arg[1], ice.EQ) { + } else if strings.Contains(arg[1], mdb.EQ) { arg[0] = web.FORM } else if _, e := strconv.ParseInt(arg[1], 10, 64); e == nil { arg[0] = mdb.TIME diff --git a/core/wiki/refer.go b/core/wiki/refer.go index 2c485eae..b6b30ec0 100644 --- a/core/wiki/refer.go +++ b/core/wiki/refer.go @@ -14,7 +14,7 @@ func _refer_show(m *ice.Message, text string, arg ...string) { for _, v := range kit.SplitLine(text) { if ls := kit.SplitWord(v); len(ls) == 1 { p := kit.QueryUnescape(ls[0]) - list = append(list, []string{kit.Select(ls[0], path.Base(strings.Split(p, ice.QS)[0])), ls[0], p}) + list = append(list, []string{kit.Select(ls[0], path.Base(strings.Split(p, mdb.QS)[0])), ls[0], p}) } else { list = append(list, append(ls, kit.QueryUnescape(ls[1]))) } diff --git a/core/wiki/spark.go b/core/wiki/spark.go index 9888b9b3..3b597f4e 100644 --- a/core/wiki/spark.go +++ b/core/wiki/spark.go @@ -4,6 +4,7 @@ import ( "strings" ice "shylinux.com/x/icebergs" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" kit "shylinux.com/x/toolkits" @@ -13,7 +14,7 @@ func _spark_md(m *ice.Message, arg ...string) *ice.Message { block, code := "", []string{} text := func() { if len(code) > 0 { - m.Cmdy(SPARK, kit.Join(code, ice.NL)) + m.Cmdy(SPARK, kit.Join(code, lex.NL)) code = []string{} } } @@ -30,7 +31,7 @@ func _spark_md(m *ice.Message, arg ...string) *ice.Message { text() block = "```" } else { - m.Cmdy(SPARK, SHELL, kit.Join(code, ice.NL)) + m.Cmdy(SPARK, SHELL, kit.Join(code, lex.NL)) block, code = "", []string{} } return diff --git a/core/wiki/wiki.go b/core/wiki/wiki.go index c8be9f59..41746d30 100644 --- a/core/wiki/wiki.go +++ b/core/wiki/wiki.go @@ -26,11 +26,11 @@ func _wiki_path(m *ice.Message, arg ...string) string { return path.Join(mdb.Config(m, nfs.PATH), path.Join(arg...)) } func _wiki_link(m *ice.Message, text string) string { - kit.If(!kit.HasPrefix(text, ice.PS, ice.HTTP), func() { text = path.Join(web.SHARE_LOCAL, _wiki_path(m, text)) }) + kit.If(!kit.HasPrefix(text, nfs.PS, ice.HTTP), func() { text = path.Join(web.SHARE_LOCAL, _wiki_path(m, text)) }) return text } func _wiki_list(m *ice.Message, arg ...string) bool { - if m.Option(nfs.DIR_ROOT, _wiki_path(m)); len(arg) == 0 || kit.HasSuffix(arg[0], ice.PS) { + if m.Option(nfs.DIR_ROOT, _wiki_path(m)); len(arg) == 0 || kit.HasSuffix(arg[0], nfs.PS) { kit.If(m.Option(nfs.DIR_DEEP) != ice.TRUE, func() { m.Cmdy(nfs.DIR, kit.Slice(arg, 0, 1), kit.Dict(nfs.DIR_TYPE, nfs.DIR)) }) m.Cmdy(nfs.DIR, kit.Slice(arg, 0, 1), kit.Dict(nfs.DIR_TYPE, nfs.CAT, nfs.DIR_REG, mdb.Config(m, lex.REGEXP))) m.SortStrR(mdb.TIME).StatusTimeCount() @@ -97,12 +97,12 @@ func (m *Message) OptionTemplate() string { kit.For(kit.Split("type,name,text"), func(k string) { add("data-", k) }) kit.For(m.Optionv(mdb.EXTRA), func(k string, v string) { kit.If(!strings.Contains(k, "-"), func() { add("data-", k) }) }) kit.For(kit.Split(ctx.STYLE), func(k string) { add("", k) }) - return kit.Join(res, ice.SP) + return kit.Join(res, lex.SP) } func (m *Message) OptionKV(key ...string) string { res := []string{} kit.For(kit.Split(kit.Join(key)), func(k string) { kit.If(m.Option(k), func() { res = append(res, kit.Format("%s='%s'", k, m.Option(k))) }) }) - return kit.Join(res, ice.SP) + return kit.Join(res, lex.SP) } diff --git a/misc/alpha/alpha.go b/misc/alpha/alpha.go index c19fd105..d8f6681a 100644 --- a/misc/alpha/alpha.go +++ b/misc/alpha/alpha.go @@ -7,6 +7,7 @@ import ( "shylinux.com/x/ice" "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/core/wiki" @@ -38,7 +39,7 @@ func (s alpha) Load(m *ice.Message, arg ...string) { m.Cmd(mdb.IMPORT, m.PrefixKey(), prefix, mdb.LIST, m.Option(nfs.FILE)) mdb.Conf(m, "", kit.Keys(prefix, kit.Keym(mdb.LIMIT)), 0) mdb.Conf(m, "", kit.Keys(prefix, kit.Keym(mdb.LEAST)), 0) - m.Echo("%s: %d", lib, mdb.Grow(m, m.PrefixKey(), prefix, kit.Dict(WORD, ice.SP))) + m.Echo("%s: %d", lib, mdb.Grow(m, m.PrefixKey(), prefix, kit.Dict(WORD, lex.SP))) } func (s alpha) List(m *ice.Message, arg ...string) { if len(arg) < 2 || arg[1] == "" { @@ -53,7 +54,7 @@ func (s alpha) List(m *ice.Message, arg ...string) { } defer func() { kit.If(m.Length() > 0, func() { m.Cmd(cache{}, mdb.CREATE, m.AppendSimple()) }) }() m.OptionFields(ice.FIELDS_DETAIL) - arg[1] = "^" + arg[1] + ice.FS + arg[1] = "^" + arg[1] + mdb.FS } wiki.CSV(m.Message.Spawn(), m.Cmdx(cli.SYSTEM, "grep", "-rih", arg[1], mdb.Config(m, mdb.STORE)), kit.Split(mdb.Config(m, mdb.FIELD))...).Table(func(value ice.Maps) { kit.If(m.FieldsIsDetail(), func() { m.PushDetail(value, mdb.Config(m, mdb.FIELD)) }, func() { m.PushRecord(value, mdb.Config(m, mdb.FIELD)) }) diff --git a/misc/bash/configs.go b/misc/bash/configs.go index aca4ea86..5fb442a4 100644 --- a/misc/bash/configs.go +++ b/misc/bash/configs.go @@ -5,6 +5,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/cli" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/web" ) @@ -14,8 +15,8 @@ func init() { Index.MergeCommands(ice.Commands{ web.P(CONFIGS): {Hand: func(m *ice.Message, arg ...string) { if strings.Contains(m.Option(cli.RELEASE), cli.ALPINE) { - m.Echo("sed -i 's/dl-cdn.alpinelinux.org/mirrors.tencent.com/g' /etc/apk/repositories && apk update").Echo(ice.NL) - m.Echo("TZ=Asia/Shanghai; apk add tzdata && cp /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone").Echo(ice.NL) + m.Echo("sed -i 's/dl-cdn.alpinelinux.org/mirrors.tencent.com/g' /etc/apk/repositories && apk update").Echo(lex.NL) + m.Echo("TZ=Asia/Shanghai; apk add tzdata && cp /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone").Echo(lex.NL) } }}, }) diff --git a/misc/bash/download.go b/misc/bash/download.go index 3d52e3a7..0a265849 100644 --- a/misc/bash/download.go +++ b/misc/bash/download.go @@ -4,6 +4,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/cli" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/tcp" @@ -29,7 +30,7 @@ func init() { m.Optionv(ice.MSG_UPLOAD, web.UPLOAD) up := web.Upload(m) m.Cmd(FAVOR, mdb.INSERT, _DOWNLOAD, mdb.TYPE, kit.Ext(up[1]), mdb.NAME, up[1], mdb.TEXT, up[0], m.OptionSimple(cli.PWD, aaa.USERNAME, tcp.HOSTNAME)) - m.Echo(up[0]).Echo(ice.NL) + m.Echo(up[0]).Echo(lex.NL) }}, }) } diff --git a/misc/bash/run.go b/misc/bash/run.go index c74a7d56..c4fdaffb 100644 --- a/misc/bash/run.go +++ b/misc/bash/run.go @@ -7,6 +7,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/web" @@ -34,7 +35,7 @@ ish_sys_dev_run_source() { ish_sys_dev_source $url done } -`, kit.Join(list, ice.SP), arg[0], kit.Join(args, ice.NL)) +`, kit.Join(list, lex.SP), arg[0], kit.Join(args, lex.NL)) m.Echo(` ish_sys_dev_run_action() { select action in %s; do @@ -46,7 +47,7 @@ ish_sys_dev_run_action() { echo done } -`, kit.Join(list, ice.SP), arg[0], kit.Join(args, ice.NL)) +`, kit.Join(list, lex.SP), arg[0], kit.Join(args, lex.NL)) m.Echo(` ish_sys_dev_run_command() { ish_sys_dev_run %s "$@" @@ -66,11 +67,11 @@ func init() { if len(list) == kit.Int(m.Option("cword")) { list = kit.Slice(list, 0, -1) } - m.Echo(strings.Join(Complete(m, false, list...), ice.NL)) + m.Echo(strings.Join(Complete(m, false, list...), lex.NL)) }}, ctx.COMMAND: {Hand: func(m *ice.Message, arg ...string) { m.Search(arg[0], func(_ *ice.Context, s *ice.Context, key string, cmd *ice.Command) { - if p := kit.ExtChange(kit.Select("/app/cat.sh", cmd.Meta[ctx.DISPLAY]), nfs.SH); strings.HasPrefix(p, ice.PS+ice.REQUIRE) { + if p := kit.ExtChange(kit.Select("/app/cat.sh", cmd.Meta[ctx.DISPLAY]), nfs.SH); strings.HasPrefix(p, nfs.PS+ice.REQUIRE) { m.Cmdy(web.SPIDE, ice.DEV, web.SPIDE_RAW, p) } else { m.Cmdy(nfs.CAT, path.Join(ice.USR_INTSHELL, p)) @@ -82,8 +83,8 @@ func init() { if !ctx.PodCmd(m, arg) && aaa.Right(m, arg) { m.Cmdy(arg) } - if m.Result() != "" && !strings.HasSuffix(m.Result(), ice.NL) { - m.Echo(ice.NL) + if m.Result() != "" && !strings.HasSuffix(m.Result(), lex.NL) { + m.Echo(lex.NL) } }}, }}, @@ -95,17 +96,17 @@ func Complete(m *ice.Message, detail bool, arg ...string) (res []string) { if len(arg) < 2 || arg[1] != ctx.ACTION { list := ctx.CmdList(m.Spawn()).Appendv(ctx.INDEX) if len(arg) > 0 { - pre := arg[0][0 : strings.LastIndex(arg[0], ice.PT)+1] + pre := arg[0][0 : strings.LastIndex(arg[0], nfs.PT)+1] list = kit.Simple(list, func(cmd string) bool { return strings.HasPrefix(cmd, arg[0]) }, func(cmd string) string { return strings.TrimPrefix(cmd, pre) }) } - if len(arg) > 1 || (len(list) == 1 && kit.Select("", kit.Split(arg[0], ice.PT), -1) == list[0]) { + if len(arg) > 1 || (len(list) == 1 && kit.Select("", kit.Split(arg[0], nfs.PT), -1) == list[0]) { kit.If(detail, func() { echo("func") }) m.Cmdy(arg).Search(arg[0], func(p *ice.Context, s *ice.Context, key string, cmd *ice.Command) { field := kit.Format(kit.Value(cmd.List, kit.Keys(len(arg)-1, mdb.NAME))) m.Table(func(index int, value ice.Maps, head []string) { echo(value[field]) if detail { - echo(kit.Join(kit.Simple(head, func(key string) string { return key + ": " + value[key] }), ice.SP)) + echo(kit.Join(kit.Simple(head, func(key string) string { return key + ": " + value[key] }), lex.SP)) } }) }) @@ -129,7 +130,7 @@ func Complete(m *ice.Message, detail bool, arg ...string) (res []string) { m.Options(arg[3:]) m.Cmdy(arg[0], mdb.INPUTS, kit.Select("", arg, -1)).Table(func(value ice.Maps) { v := value[m.Appendv(ice.MSG_APPEND)[0]] - kit.If(strings.Contains(v, ice.SP), func() { echo("\"" + v + "\"") }, func() { echo(v) }) + kit.If(strings.Contains(v, lex.SP), func() { echo("\"" + v + "\"") }, func() { echo(v) }) }) } return @@ -140,7 +141,7 @@ func Complete(m *ice.Message, detail bool, arg ...string) (res []string) { kit.For(kit.SortedKey(cmd.Actions), func(sub string) { if strings.HasPrefix(sub, kit.Select("", arg, 2)) { if echo(sub); detail { - echo(cmd.Actions[sub].Name + ice.SP + cmd.Actions[sub].Help) + echo(cmd.Actions[sub].Name + lex.SP + cmd.Actions[sub].Help) } } }) diff --git a/misc/bash/sync.go b/misc/bash/sync.go index ed9133e1..1ccf4525 100644 --- a/misc/bash/sync.go +++ b/misc/bash/sync.go @@ -7,6 +7,7 @@ import ( "shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/tcp" @@ -42,9 +43,9 @@ func init() { }}, web.PP(SYNC): {Actions: ice.Actions{ HISTORY: {Hand: func(m *ice.Message, arg ...string) { - ls := strings.SplitN(strings.TrimSpace(m.Option(ARG)), ice.SP, 4) - if text := strings.TrimSpace(strings.Join(ls[3:], ice.SP)); text != "" { - m.Cmd(SYNC, mdb.INSERT, mdb.TIME, ls[1]+ice.SP+ls[2], mdb.TYPE, SHELL, mdb.NAME, ls[0], mdb.TEXT, text, m.OptionSimple(cli.PWD, aaa.USERNAME, tcp.HOSTNAME)) + ls := strings.SplitN(strings.TrimSpace(m.Option(ARG)), lex.SP, 4) + if text := strings.TrimSpace(strings.Join(ls[3:], lex.SP)); text != "" { + m.Cmd(SYNC, mdb.INSERT, mdb.TIME, ls[1]+lex.SP+ls[2], mdb.TYPE, SHELL, mdb.NAME, ls[0], mdb.TEXT, text, m.OptionSimple(cli.PWD, aaa.USERNAME, tcp.HOSTNAME)) } }}, }}, diff --git a/misc/git/configs.go b/misc/git/configs.go index ce4efca0..caee790d 100644 --- a/misc/git/configs.go +++ b/misc/git/configs.go @@ -4,6 +4,7 @@ import ( "strings" ice "shylinux.com/x/icebergs" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" kit "shylinux.com/x/toolkits" @@ -12,7 +13,7 @@ import ( func _configs_set(m *ice.Message, k, v string) string { return _git_cmds(m, CONFIG, "--global", k, v) } func _configs_get(m *ice.Message, k string) string { return _git_cmds(m, CONFIG, "--global", k) } func _configs_list(m *ice.Message) *ice.Message { - kit.SplitKV(ice.EQ, ice.NL, _configs_get(m, "--list"), func(text string, ls []string) { + kit.SplitKV(mdb.EQ, lex.NL, _configs_get(m, "--list"), func(text string, ls []string) { m.Push(mdb.NAME, ls[0]).Push(mdb.VALUE, ls[1]).PushButton(mdb.REMOVE) }) return mdb.HashSelectValue(m, func(value ice.Maps) { m.Push("", value, kit.Split("name,value")).PushButton(mdb.CREATE) }) @@ -21,7 +22,7 @@ func _configs_read(m *ice.Message, p string) ice.Maps { res, block := ice.Maps{}, "" m.Cmd(nfs.CAT, p, func(text string) { if strings.HasPrefix(text, "[") { - block = kit.Join(kit.Split(text, " []"), ice.PT) + block = kit.Join(kit.Split(text, " []"), nfs.PT) return } ls := kit.Split(text, " =") diff --git a/misc/git/count.go b/misc/git/count.go index bc18f7ea..7b79976a 100644 --- a/misc/git/count.go +++ b/misc/git/count.go @@ -5,6 +5,7 @@ import ( "strings" ice "shylinux.com/x/icebergs" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/core/code" @@ -67,7 +68,7 @@ func init() { "tags": {Help: "索引", Hand: func(m *ice.Message, arg ...string) { count := map[string]int{} m.Cmd(nfs.CAT, path.Join(arg[0], nfs.TAGS), func(line string) { - if ls := strings.SplitN(line, ice.TB, 3); len(ls) < 3 { + if ls := strings.SplitN(line, lex.TB, 3); len(ls) < 3 { return } else if ls = strings.SplitN(ls[2], ";\"", 2); len(ls) < 2 { return diff --git a/misc/git/repos.go b/misc/git/repos.go index a2d66238..837656ef 100644 --- a/misc/git/repos.go +++ b/misc/git/repos.go @@ -18,6 +18,7 @@ import ( "shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/log" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" @@ -59,7 +60,7 @@ func _repos_each(m *ice.Message, title string, cb func(*git.Repository, ice.Maps if msg.Length() == 0 { return } - web.GoToast(m, kit.Select(m.CommandKey()+ice.SP+m.ActionKey(), title), func(toast func(string, int, int)) { + web.GoToast(m, kit.Select(m.CommandKey()+lex.SP+m.ActionKey(), title), func(toast func(string, int, int)) { list, count, total := []string{}, 0, msg.Length() msg.Table(func(value ice.Maps) { toast(value[REPOS], count, total) @@ -71,7 +72,7 @@ func _repos_each(m *ice.Message, title string, cb func(*git.Repository, ice.Maps count++ }) if len(list) > 0 { - web.Toast(m, strings.Join(list, ice.NL), ice.FAILURE, "30s") + web.Toast(m, strings.Join(list, lex.NL), ice.FAILURE, "30s") } else { toast(ice.SUCCESS, count, total) } @@ -157,12 +158,12 @@ func _repos_status(m *ice.Message, p string, repos *git.Repository) error { } defer m.StatusTimeCount() for k, v := range status { - if kit.IsIn(kit.Ext(k), "swp", "swo") { + if kit.IsIn(kit.Ext(k), "swp", "swo") || kit.IsIn(kit.Split(k, nfs.PS)[0], ice.BIN, ice.VAR, ice.USR) { continue } - if m.Push(REPOS, p).Push(STATUS, string(v.Worktree)+string(v.Staging)).Push(nfs.FILE, k); m.Option("mode") == "zone" { + if m.Push(REPOS, p).Push(STATUS, string(v.Worktree)+string(v.Staging)).Push(nfs.FILE, k); m.Option(ice.MSG_MODE) == mdb.ZONE { ls := nfs.SplitPath(m, kit.Path(_repos_path(m, p), k)) - m.Push(nfs.PATH, ls[0]).Push(mdb.TEXT, string(v.Worktree)+string(v.Staging)+ice.SP+ls[0]+ls[1]) + m.Push(nfs.PATH, ls[0]).Push(mdb.TEXT, string(v.Worktree)+string(v.Staging)+lex.SP+ls[0]+ls[1]) } switch v.Worktree { case git.Untracked: @@ -209,14 +210,15 @@ func _repos_vimer(m *ice.Message, _repos_path func(m *ice.Message, p string, arg } else if kit.Select("", arg, 1) != ctx.ACTION { if ls := kit.Split(path.Join(m.Option(nfs.DIR_ROOT), arg[1]), nfs.PS); len(ls) < 2 || ls[2] == INDEX { if repos := _repos_open(m, ls[0]); len(arg) < 3 { + // m.Cmdy(nfs.DIR, nfs.PWD, kit.Dict(nfs.DIR_ROOT, _repos_path(m, ls[0]))) if work, err := repos.Worktree(); err == nil { if status, err := work.Status(); err == nil { for k := range status { - m.Echo(k) + m.Push(nfs.PATH, k) + // m.Echo(k) } } } - m.Cmdy(nfs.DIR, nfs.PWD, kit.Dict(nfs.DIR_ROOT, _repos_path(m, ls[0]))) } else { m.Cmdy(nfs.CAT, _repos_path(m, ls[0], arg[2])) if refer, err := repos.Head(); err == nil { @@ -313,7 +315,7 @@ func init() { p := path.Join(kit.Select(ice.USR_REQUIRE, m.Cmdx(cli.SYSTEM, "go", "env", "GOMODCACHE")), path.Join(arg...)) if !nfs.Exists(m, p) { if p = path.Join(ice.USR_REQUIRE, path.Join(arg...)); !nfs.Exists(m, p) { - ls := strings.SplitN(path.Join(arg[:3]...), ice.AT, 2) + ls := strings.SplitN(path.Join(arg[:3]...), mdb.AT, 2) to := path.Join(ice.USR_REQUIRE, path.Join(arg[:3]...)) _, err := git.PlainClone(to, false, &git.CloneOptions{URL: "https://" + ls[0], ReferenceName: plumbing.NewBranchReferenceName(kit.Select(ice.Info.Gomod[ls[0]], ls, 1))}) m.Warn(err) @@ -408,7 +410,7 @@ func init() { } } } - _, err := work.Commit(m.Option("actions")+ice.SP+m.Option("comment"), opt) + _, err := work.Commit(m.Option("actions")+lex.SP+m.Option("comment"), opt) m.Warn(err) } }}, diff --git a/misc/git/service.go b/misc/git/service.go index 13446236..5be70776 100644 --- a/misc/git/service.go +++ b/misc/git/service.go @@ -15,6 +15,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/cli" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/tcp" @@ -26,11 +27,11 @@ import ( func _service_login(m *ice.Message) error { if ice.Info.Localhost && tcp.IsLocalHost(m, m.Option(ice.MSG_USERIP)) { return nil - } else if auth := strings.SplitN(m.R.Header.Get(web.Authorization), ice.SP, 2); strings.ToLower(auth[0]) != "basic" { + } else if auth := strings.SplitN(m.R.Header.Get(web.Authorization), lex.SP, 2); strings.ToLower(auth[0]) != "basic" { return fmt.Errorf("Authentication type error") } else if data, err := base64.StdEncoding.DecodeString(auth[1]); err != nil { return err - } else if auth := strings.SplitN(string(data), ice.DF, 2); m.Cmdv(Prefix(TOKEN), auth[0], TOKEN) != auth[1] { + } else if auth := strings.SplitN(string(data), nfs.DF, 2); m.Cmdv(Prefix(TOKEN), auth[0], TOKEN) != auth[1] { return fmt.Errorf("username or password error") } else if aaa.UserRole(m, auth[0]) == aaa.VOID { return fmt.Errorf("userrole has no right") @@ -51,7 +52,7 @@ func _service_repos(m *ice.Message, arg ...string) error { if m.Option(cli.CMD_DIR, repos); strings.HasSuffix(path.Join(arg...), INFO_REFS) { m.Option(ice.MSG_USERROLE, aaa.TECH) web.RenderType(m.W, "", kit.Format("application/x-git-%s-advertisement", service)) - _service_writer(m, "# service=git-"+service+ice.NL, _git_cmds(m, service, "--stateless-rpc", "--advertise-refs", ice.PT)) + _service_writer(m, "# service=git-"+service+lex.NL, _git_cmds(m, service, "--stateless-rpc", "--advertise-refs", nfs.PT)) return nil } reader, err := _service_reader(m) @@ -60,7 +61,7 @@ func _service_repos(m *ice.Message, arg ...string) error { } defer reader.Close() web.RenderType(m.W, "", kit.Format("application/x-git-%s-result", service)) - _git_cmd(m.Options(cli.CMD_INPUT, reader, cli.CMD_OUTPUT, m.W), service, "--stateless-rpc", ice.PT) + _git_cmd(m.Options(cli.CMD_INPUT, reader, cli.CMD_OUTPUT, m.W), service, "--stateless-rpc", nfs.PT) return nil } func _service_writer(m *ice.Message, cmd string, str ...string) { diff --git a/misc/git/spide.go b/misc/git/spide.go index b915446d..5e0372a6 100644 --- a/misc/git/spide.go +++ b/misc/git/spide.go @@ -18,7 +18,7 @@ func init() { m.Cmdy(REPOS) } else if len(arg) == 1 { nfs.DirDeepAll(m, _repos_path(m, arg[0]), "", func(value ice.Maps) { m.Push("", value, []string{nfs.PATH}) }, nfs.PATH) - m.Options(nfs.DIR_ROOT, _repos_path(m, arg[0])).StatusTimeCount() + m.Options(nfs.DIR_ROOT, _repos_path(m, arg[0])+nfs.PS).StatusTimeCount() ctx.DisplayStory(m, "", mdb.FIELD, nfs.PATH, aaa.ROOT, arg[0]) } }}, diff --git a/misc/git/status.go b/misc/git/status.go index 38a30289..f8de6509 100644 --- a/misc/git/status.go +++ b/misc/git/status.go @@ -9,6 +9,7 @@ import ( "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/ctx" "shylinux.com/x/icebergs/base/gdb" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/tcp" @@ -20,7 +21,7 @@ func _status_tag(m *ice.Message, tags string) string { if tags == "" { return "v0.0.1" } - ls := kit.Split(strings.TrimPrefix(kit.Split(tags, "-")[0], "v"), ice.PT) + ls := kit.Split(strings.TrimPrefix(kit.Split(tags, "-")[0], "v"), nfs.PT) if v := kit.Int(ls[2]); v < 9 { return kit.Format("v%v.%v.%v", ls[0], ls[1], v+1) } else if v := kit.Int(ls[1]); v < 9 { @@ -32,7 +33,7 @@ func _status_tag(m *ice.Message, tags string) string { } } func _status_stat(m *ice.Message, files, adds, dels int) (int, int, int) { - kit.SplitKV(ice.SP, ice.FS, _git_diff(m), func(text string, ls []string) { + kit.SplitKV(lex.SP, mdb.FS, _git_diff(m), func(text string, ls []string) { n := kit.Int(ls[0]) switch { case strings.Contains(text, "file"): @@ -54,7 +55,7 @@ func _status_list(m *ice.Message) (files, adds, dels int, last string) { _last := m.Cmdv(REPOS, path.Base(value[nfs.PATH]), mdb.TIME) kit.If(_last > last, func() { last = _last }) tags := _git_tags(m) - kit.SplitKV(ice.SP, ice.NL, _git_status(m), func(text string, ls []string) { + kit.SplitKV(lex.SP, lex.NL, _git_status(m), func(text string, ls []string) { switch kit.Ext(ls[1]) { case "swp", "swo", ice.BIN, ice.VAR: return @@ -63,7 +64,7 @@ func _status_list(m *ice.Message) (files, adds, dels int, last string) { return } if m.Push(REPOS, value[REPOS]).Push(mdb.TYPE, ls[0]).Push(nfs.FILE, ls[1]); onlychange { - m.Push(nfs.PATH, value[nfs.PATH]).Push(mdb.VIEW, kit.Format("%s %s", ls[0]+strings.Repeat(ice.SP, len(ls[0])-9), kit.Select("", nfs.USR+value[REPOS]+nfs.PS, value[REPOS] != ice.CONTEXTS)+ls[1])) + m.Push(nfs.PATH, value[nfs.PATH]).Push(mdb.VIEW, kit.Format("%s %s", ls[0]+strings.Repeat(lex.SP, len(ls[0])-9), kit.Select("", nfs.USR+value[REPOS]+nfs.PS, value[REPOS] != ice.CONTEXTS)+ls[1])) } switch ls[0] { case "##": @@ -107,7 +108,7 @@ func init() { case INSTEADOF: switch arg[0] { case nfs.FROM: - m.Push(arg[0], kit.MergeURL2(ice.Info.Make.Remote, ice.PS)) + m.Push(arg[0], kit.MergeURL2(ice.Info.Make.Remote, nfs.PS)) case nfs.TO: m.Cmd(web.BROAD, func(value ice.Maps) { m.Push(arg[0], kit.Format("http://%s:%s/", value[tcp.HOST], value[tcp.PORT])) }) } @@ -116,8 +117,8 @@ func init() { switch arg[0] { case COMMENT: ls := kit.Split(m.Option(nfs.FILE), " /") - m.Push(arg[0], kit.Join(kit.Slice(ls, -1), ice.PS)) - m.Push(arg[0], kit.Join(kit.Slice(ls, -2), ice.PS)) + m.Push(arg[0], kit.Join(kit.Slice(ls, -1), nfs.PS)) + m.Push(arg[0], kit.Join(kit.Slice(ls, -2), nfs.PS)) m.Push(arg[0], m.Option(nfs.FILE)) case VERSION: m.Push(VERSION, _status_tag(m, m.Option(TAGS))) @@ -151,7 +152,7 @@ func init() { return } text := []string{} - for _, line := range kit.Split(m.Cmdx(web.SPACE, m.Option(mdb.NAME), cli.SYSTEM, GIT, DIFF, "--shortstat"), ice.FS, ice.FS) { + for _, line := range kit.Split(m.Cmdx(web.SPACE, m.Option(mdb.NAME), cli.SYSTEM, GIT, DIFF, "--shortstat"), mdb.FS, mdb.FS) { if list := kit.Split(line); strings.Contains(line, "file") { text = append(text, list[0]+" file") } else if strings.Contains(line, "ins") { diff --git a/misc/git/token.go b/misc/git/token.go index c79d956a..2600b6a0 100644 --- a/misc/git/token.go +++ b/misc/git/token.go @@ -6,6 +6,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/cli" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/tcp" @@ -46,7 +47,7 @@ func init() { host, list := ice.Map{kit.ParseURL(m.Option(TOKEN)).Host: true}, []string{m.Option(TOKEN)} m.Cmd(nfs.CAT, kit.HomePath(FILE), func(line string) { kit.IfNoKey(host, kit.ParseURL(line).Host, func(p string) { list = append(list, line) }) - }).Cmd(nfs.SAVE, kit.HomePath(FILE), strings.Join(list, ice.NL)+ice.NL) + }).Cmd(nfs.SAVE, kit.HomePath(FILE), strings.Join(list, lex.NL)+lex.NL) }}, web.PP(GET): {Hand: func(m *ice.Message, arg ...string) { web.RenderOrigin(m.W, "*") diff --git a/misc/git/total.go b/misc/git/total.go index 2ce22ca4..8487381d 100644 --- a/misc/git/total.go +++ b/misc/git/total.go @@ -9,6 +9,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" kit "shylinux.com/x/toolkits" @@ -75,16 +76,16 @@ func init() { kit.If(len(arg) > 0 && arg[0] == mdb.TOTAL, func() { total, arg = true, arg[1:] }) args := []string{"log", "--shortstat", "--pretty=commit: %ad %n%s", "--date=iso", "--reverse"} if len(arg) > 0 { - arg[0] += kit.Select("", " 00:00:00", strings.Contains(arg[0], "-") && !strings.Contains(arg[0], ice.DF)) + arg[0] += kit.Select("", " 00:00:00", strings.Contains(arg[0], "-") && !strings.Contains(arg[0], nfs.DF)) args = append(args, kit.Select("-n", "--since", strings.Contains(arg[0], "-"))) args = append(args, arg...) } else { args = append(args, "-n", "30") } from, days, commit, adds, dels := "", 0, 0, 0, 0 - kit.SplitKV(ice.NL, "commit:", _git_cmds(m, args...), func(text string, ls []string) { + kit.SplitKV(lex.NL, "commit:", _git_cmds(m, args...), func(text string, ls []string) { add, del := "0", "0" - for _, v := range kit.Split(strings.TrimSpace(kit.Select("", ls, -1)), ice.FS) { + for _, v := range kit.Split(strings.TrimSpace(kit.Select("", ls, -1)), mdb.FS) { switch { case strings.Contains(v, "inser"): add = kit.Split(v)[0] @@ -94,7 +95,7 @@ func init() { } if total { if commit++; from == "" { - hs := strings.Split(ls[0], ice.SP) + hs := strings.Split(ls[0], lex.SP) if t, e := time.Parse("2006-01-02", hs[0]); e == nil { from, days = hs[0], int(time.Now().Sub(t).Hours())/24 } diff --git a/misc/input/input.go b/misc/input/input.go index 4d8f1186..a3539385 100644 --- a/misc/input/input.go +++ b/misc/input/input.go @@ -90,10 +90,10 @@ func (s input) List(m *ice.Message, arg ...string) { switch arg[0] { case LINE: case WORD: - arg[1] = "^" + arg[1] + ice.FS + arg[1] = "^" + arg[1] + mdb.FS } res := m.Cmdx(cli.SYSTEM, "grep", "-rn", arg[1], mdb.Config(m, mdb.STORE)) - bio := csv.NewReader(bytes.NewBufferString(strings.Replace(res, ice.DF, ice.FS, -1))) + bio := csv.NewReader(bytes.NewBufferString(strings.Replace(res, nfs.DF, mdb.FS, -1))) for i := 0; i < kit.Int(10); i++ { if line, e := bio.Read(); e != nil { break diff --git a/misc/input/wubi.go b/misc/input/wubi.go index 603fbc40..229a39f6 100644 --- a/misc/input/wubi.go +++ b/misc/input/wubi.go @@ -5,6 +5,7 @@ import ( "shylinux.com/x/ice" "shylinux.com/x/icebergs/base/cli" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" kit "shylinux.com/x/toolkits" ) @@ -26,11 +27,11 @@ func (w wubi) Input(m *ice.Message, arg ...string) { switch list := kit.Split(arg[0]); list[1] { case "add": // ice add 想你 shwq [9999 [person]] w.Insert(m, mdb.ZONE, kit.Select("person", list, 5), mdb.TEXT, list[2], cli.CODE, list[3], mdb.VALUE, kit.Select("999999", list, 4)) - m.Echo(list[3] + ice.NL) + m.Echo(list[3] + lex.NL) } return } - m.Cmd(w, WORD, arg[0], func(value ice.Maps) { m.Echo(value[mdb.TEXT] + ice.NL) }) + m.Cmd(w, WORD, arg[0], func(value ice.Maps) { m.Echo(value[mdb.TEXT] + lex.NL) }) } func init() { ice.CodeCtxCmd(wubi{}) } diff --git a/misc/java/spring.go b/misc/java/spring.go index 13ee43e1..d048d3b9 100644 --- a/misc/java/spring.go +++ b/misc/java/spring.go @@ -25,7 +25,7 @@ func (s spring) Build(m *ice.Message) { s.Code.Stream(m, m.Option(nfs.PATH), MVN, "package") } func (s spring) Start(m *ice.Message, arg ...string) { - s.Code.Daemon(m, m.Option(nfs.PATH), kit.Simple(JAVA, kit.Simple(arg, func(k, v string) string { return "-D" + k + ice.EQ + v }), + s.Code.Daemon(m, m.Option(nfs.PATH), kit.Simple(JAVA, kit.Simple(arg, func(k, v string) string { return "-D" + k + mdb.EQ + v }), "-jar", kit.Format("target/%s-0.0.1-SNAPSHOT.jar", m.Option(mdb.NAME)))...) } func (s spring) List(m *ice.Message, arg ...string) { diff --git a/misc/lark/home.go b/misc/lark/home.go index aa9bdfff..69fb5811 100644 --- a/misc/lark/home.go +++ b/misc/lark/home.go @@ -3,6 +3,7 @@ package lark import ( ice "shylinux.com/x/icebergs" "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" @@ -21,7 +22,7 @@ func init() { m.Cmd("web.chat./river", func(val ice.Maps) { m.Cmd("web.chat./river", val[mdb.HASH], chat.STORM, func(value ice.Maps) { list = append(list, kit.Keys(val[mdb.NAME], value[mdb.NAME]), - ice.CMD, kit.Format([]string{HOME, val[mdb.HASH], value[mdb.HASH], val[mdb.NAME] + ice.PT + value[mdb.NAME]})) + ice.CMD, kit.Format([]string{HOME, val[mdb.HASH], value[mdb.HASH], val[mdb.NAME] + nfs.PT + value[mdb.NAME]})) }) }) } else { diff --git a/misc/lark/msg.go b/misc/lark/msg.go index 836af8a3..82282347 100644 --- a/misc/lark/msg.go +++ b/misc/lark/msg.go @@ -6,6 +6,7 @@ import ( "strings" ice "shylinux.com/x/icebergs" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/web" "shylinux.com/x/icebergs/core/wiki" @@ -87,7 +88,7 @@ func init() { "card": {Hand: func(m *ice.Message, arg ...string) { kit.For(kit.Value(m.Optionv(ice.MSG_USERDATA), "action.value"), func(k string, v string) { m.Option(k, v) }) m.Cmdy(TALK, kit.Parse(nil, "", kit.Split(m.Option(ice.CMD))...)) - m.Cmd(SEND, m.Option(APP_ID), CHAT_ID, m.Option(OPEN_CHAT_ID), m.Option(wiki.TITLE)+ice.SP+m.Option(ice.CMD), m.Result()) + m.Cmd(SEND, m.Option(APP_ID), CHAT_ID, m.Option(OPEN_CHAT_ID), m.Option(wiki.TITLE)+lex.SP+m.Option(ice.CMD), m.Result()) }}, }, Hand: func(m *ice.Message, arg ...string) { if m.Option(OPEN_CHAT_ID) == "" { diff --git a/misc/lark/talk.go b/misc/lark/talk.go index 0dd193c2..2f05f535 100644 --- a/misc/lark/talk.go +++ b/misc/lark/talk.go @@ -6,6 +6,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/cli" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/web" kit "shylinux.com/x/toolkits" ) @@ -35,13 +36,13 @@ func init() { val := []string{} m.Table(func(index int, value ice.Maps, head []string) { kit.For(head, func(k string) { val = append(val, kit.Format("%s:\t%s", k, value[k])) }) - val = append(val, ice.NL) + val = append(val, lex.NL) }) _lark_post(m, m.Option(APP_ID), "/open-apis/message/v4/send/", web.SPIDE_DATA, kit.Formats( kit.Dict("msg_type", "interactive", "chat_id", m.Option(OPEN_CHAT_ID), "card", kit.Dict( "header", kit.Dict("title", kit.Dict("tag", "lark_md", "content", strings.Join(cmds, " "))), "elements", []ice.Any{kit.Dict("tag", "div", "fields", []ice.Any{ - kit.Dict("is_short", true, "text", kit.Dict("tag", "lark_md", "content", strings.Join(val, ice.NL))), + kit.Dict("is_short", true, "text", kit.Dict("tag", "lark_md", "content", strings.Join(val, lex.NL))), })}, )), )) diff --git a/misc/lex/split.go b/misc/lex/split.go index f01a14ab..ef3a24a7 100644 --- a/misc/lex/split.go +++ b/misc/lex/split.go @@ -96,7 +96,7 @@ const SPLIT = "split" func init() { Index.MergeCommands(ice.Commands{ SPLIT: {Name: "split path key auto", Help: "分词", Hand: func(m *ice.Message, arg ...string) { - if len(arg) == 0 || strings.HasSuffix(arg[0], ice.PS) { + if len(arg) == 0 || strings.HasSuffix(arg[0], nfs.PS) { m.Cmdy(nfs.DIR, arg) return } diff --git a/misc/ssh/channel.go b/misc/ssh/channel.go index 86c7206f..799bc99c 100644 --- a/misc/ssh/channel.go +++ b/misc/ssh/channel.go @@ -6,6 +6,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" psh "shylinux.com/x/icebergs/base/ssh" "shylinux.com/x/icebergs/base/tcp" @@ -49,7 +50,7 @@ func init() { ctx.COMMAND: {Name: "command cmd=pwd", Help: "命令", Hand: func(m *ice.Message, arg ...string) { mdb.ZoneInsert(m, m.OptionSimple(mdb.HASH), mdb.TYPE, CMD, mdb.TEXT, m.Option(CMD)) if w, ok := mdb.HashSelectTarget(m, m.Option(mdb.HASH), nil).(io.Writer); ok { - w.Write([]byte(m.Option(CMD) + ice.NL)) + w.Write([]byte(m.Option(CMD) + lex.NL)) m.Sleep300ms() } }}, diff --git a/misc/ssh/connect.go b/misc/ssh/connect.go index 8ca457b3..71639e18 100644 --- a/misc/ssh/connect.go +++ b/misc/ssh/connect.go @@ -15,6 +15,7 @@ import ( "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/ctx" "shylinux.com/x/icebergs/base/gdb" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" psh "shylinux.com/x/icebergs/base/ssh" @@ -32,7 +33,7 @@ func _ssh_open(m *ice.Message, arg ...string) { c.Write([]byte(fmt.Sprintf("#height:%d,width:%d\n", h, w))) for _, item := range kit.Simple(m.Optionv(ice.INIT)) { m.Sleep300ms() - c.Write([]byte(item + ice.NL)) + c.Write([]byte(item + lex.NL)) } m.Go(func() { io.Copy(c, os.Stdin) }) io.Copy(os.Stdout, c) @@ -114,7 +115,7 @@ func _ssh_conn(m *ice.Message, cb func(*ssh.Client), arg ...string) { return })) m.Cmdy(tcp.CLIENT, tcp.DIAL, mdb.TYPE, SSH, mdb.NAME, m.Option(tcp.HOST), m.OptionSimple(tcp.HOST, tcp.PORT), arg, func(c net.Conn) { - conn, chans, reqs, err := ssh.NewClientConn(c, m.Option(tcp.HOST)+ice.DF+m.Option(tcp.PORT), &ssh.ClientConfig{ + conn, chans, reqs, err := ssh.NewClientConn(c, m.Option(tcp.HOST)+nfs.DF+m.Option(tcp.PORT), &ssh.ClientConfig{ User: m.Option(aaa.USERNAME), Auth: methods, BannerCallback: func(message string) error { return nil }, HostKeyCallback: func(hostname string, remote net.Addr, key ssh.PublicKey) error { return nil }, }) diff --git a/misc/ssh/rsa.go b/misc/ssh/rsa.go index 4ff81901..e5b29364 100644 --- a/misc/ssh/rsa.go +++ b/misc/ssh/rsa.go @@ -11,6 +11,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/aaa" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" kit "shylinux.com/x/toolkits" @@ -40,7 +41,7 @@ func init() { mdb.CREATE: {Name: "create bits=2048,4096 title=some", Hand: func(m *ice.Message, arg ...string) { if key, err := rsa.GenerateKey(rand.Reader, kit.Int(m.Option(BITS))); !m.Warn(err, ice.ErrNotValid) { if pub, err := ssh.NewPublicKey(key.Public()); !m.Warn(err, ice.ErrNotValid) { - mdb.HashCreate(m, m.OptionSimple(TITLE), PUBLIC, string(ssh.MarshalAuthorizedKey(pub))+ice.SP+m.Option(TITLE), + mdb.HashCreate(m, m.OptionSimple(TITLE), PUBLIC, string(ssh.MarshalAuthorizedKey(pub))+lex.SP+m.Option(TITLE), PRIVATE, string(pem.EncodeToMemory(&pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(key)})), ) } diff --git a/misc/ssh/service.go b/misc/ssh/service.go index 215508ce..c812d412 100644 --- a/misc/ssh/service.go +++ b/misc/ssh/service.go @@ -16,6 +16,7 @@ import ( "shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" psh "shylinux.com/x/icebergs/base/ssh" @@ -184,7 +185,7 @@ func init() { list = append(list, fmt.Sprintf("%s %s %s", value[mdb.TYPE], value[mdb.TEXT], value[mdb.NAME])) }) if len(list) > 0 { - m.Cmdy(nfs.SAVE, kit.HomePath(m.Option(AUTHKEY)), strings.Join(list, ice.NL)+ice.NL) + m.Cmdy(nfs.SAVE, kit.HomePath(m.Option(AUTHKEY)), strings.Join(list, lex.NL)+lex.NL) } }}, aaa.INVITE: {Help: "邀请", Hand: func(m *ice.Message, arg ...string) { diff --git a/misc/ssh/session.go b/misc/ssh/session.go index 15e2e820..eb7da0e3 100644 --- a/misc/ssh/session.go +++ b/misc/ssh/session.go @@ -7,6 +7,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" psh "shylinux.com/x/icebergs/base/ssh" "shylinux.com/x/icebergs/base/tcp" @@ -55,7 +56,7 @@ func init() { ctx.COMMAND: {Name: "command cmd=pwd", Help: "命令", Hand: func(m *ice.Message, arg ...string) { mdb.ZoneInsert(m, m.OptionSimple(mdb.HASH), mdb.TYPE, CMD, mdb.TEXT, m.Option(CMD)) if w, ok := mdb.HashSelectTarget(m, m.Option(mdb.HASH), nil).(io.Writer); ok { - w.Write([]byte(m.Option(CMD) + ice.NL)) + w.Write([]byte(m.Option(CMD) + lex.NL)) m.Sleep300ms() } }}, diff --git a/misc/tmux/session.go b/misc/tmux/session.go index 134e46d5..693ef150 100644 --- a/misc/tmux/session.go +++ b/misc/tmux/session.go @@ -7,7 +7,9 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" + "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/ssh" "shylinux.com/x/icebergs/base/web" "shylinux.com/x/icebergs/core/code" @@ -16,9 +18,9 @@ import ( func _tmux_key(arg ...string) string { if len(arg) > 2 { - return arg[0] + ice.DF + arg[1] + ice.PT + arg[2] + return arg[0] + nfs.DF + arg[1] + nfs.PT + arg[2] } else if len(arg) > 1 { - return arg[0] + ice.DF + arg[1] + return arg[0] + nfs.DF + arg[1] } else if len(arg) > 0 { return arg[0] } else { @@ -181,23 +183,23 @@ func init() { } else if len(arg) > 0 { m.Cmdy(WINDOW, arg[0]) } else { - m.Split(_tmux_cmd(m, LIST_SESSION, "-F", mdb.Config(m, FORMAT)).Result(), mdb.Config(m, FIELDS), ice.FS, ice.NL) + m.Split(_tmux_cmd(m, LIST_SESSION, "-F", mdb.Config(m, FORMAT)).Result(), mdb.Config(m, FIELDS), mdb.FS, lex.NL) } m.Table(func(value ice.Maps) { kit.If(value["tag"] == "1", func() { m.PushButton("") }, func() { m.PushButton(code.XTERM, mdb.SELECT, mdb.REMOVE) }) }).StatusTimeCount() }}, WINDOW: {Hand: func(m *ice.Message, arg ...string) { - m.Split(m.Cmdx(cli.SYSTEM, TMUX, LIST_WINDOWS, "-t", kit.Select("", arg, 0), "-F", mdb.Config(m, FORMAT)), mdb.Config(m, FIELDS), ice.FS, ice.NL) + m.Split(m.Cmdx(cli.SYSTEM, TMUX, LIST_WINDOWS, "-t", kit.Select("", arg, 0), "-F", mdb.Config(m, FORMAT)), mdb.Config(m, FIELDS), mdb.FS, lex.NL) }}, PANE: {Hand: func(m *ice.Message, arg ...string) { - m.Split(_tmux_cmds(m, LIST_PANES, "-t", kit.Select("", arg, 0), "-F", mdb.Config(m, FORMAT)), mdb.Config(m, FIELDS), ice.FS, ice.NL) + m.Split(_tmux_cmds(m, LIST_PANES, "-t", kit.Select("", arg, 0), "-F", mdb.Config(m, FORMAT)), mdb.Config(m, FIELDS), mdb.FS, lex.NL) }}, VIEW: {Hand: func(m *ice.Message, arg ...string) { m.Echo(_tmux_cmds(m, CAPTURE_PANE, "-p", "-t", kit.Select("", arg, 0))) }}, CMD: {Hand: func(m *ice.Message, arg ...string) { - _tmux_cmd(m, SEND_KEYS, "-t", arg[0], strings.Join(arg[1:], ice.SP), ENTER) + _tmux_cmd(m, SEND_KEYS, "-t", arg[0], strings.Join(arg[1:], lex.SP), ENTER) }}, }}) } diff --git a/misc/vim/input.go b/misc/vim/input.go index 48398416..1f5b0c17 100644 --- a/misc/vim/input.go +++ b/misc/vim/input.go @@ -4,7 +4,9 @@ import ( "strings" ice "shylinux.com/x/icebergs" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" + "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/web" "shylinux.com/x/icebergs/misc/bash" kit "shylinux.com/x/toolkits" @@ -20,10 +22,10 @@ func init() { Index.MergeCommands(ice.Commands{ INPUT: {Name: "input hash auto export import", Help: "输入法", Actions: mdb.HashAction(mdb.SHORT, mdb.NAME, mdb.FIELD, "time,hash,type,name,text")}, web.P(INPUT): {Hand: func(m *ice.Message, arg ...string) { - if arg[0] == ice.PT { + if arg[0] == nfs.PT { } else if strings.Contains(m.Option("pre"), "ice") { - m.EchoLine(kit.Join(bash.Complete(m, true, kit.Split(strings.Split(m.Option("pre")+m.Option("cmds"), "ice")[1])...), ice.NL)) + m.EchoLine(kit.Join(bash.Complete(m, true, kit.Split(strings.Split(m.Option("pre")+m.Option("cmds"), "ice")[1])...), lex.NL)) // mdb.HashCreate(m.Spawn(), kit.SimpleKV("", CMDS, strings.TrimSpace(arg[0]), m.Result())) } else if m.Cmdy(TAGS, INPUT, arg[0], m.Option("pre")); len(m.Result()) > 0 { // mdb.HashCreate(m, kit.SimpleKV("", TAGS, arg[0], m.Result())) diff --git a/misc/vim/sync.go b/misc/vim/sync.go index 85e57ccc..8d461201 100644 --- a/misc/vim/sync.go +++ b/misc/vim/sync.go @@ -21,7 +21,7 @@ func init() { mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) { m.Cmdy(FAVOR, mdb.INPUTS, arg) }}, code.INNER: {Hand: func(m *ice.Message, arg ...string) { p := path.Join(m.Option(cli.PWD), m.Option(BUF)) - ctx.ProcessField(m, "", []string{path.Dir(p) + ice.PS, path.Base(p), m.Option(ROW)}, arg...) + ctx.ProcessField(m, "", []string{path.Dir(p) + nfs.PS, path.Base(p), m.Option(ROW)}, arg...) }}, FAVOR: {Name: "favor zone*=some type name text pwd buf row", Hand: func(m *ice.Message, arg ...string) { m.Cmd(FAVOR, mdb.INSERT, m.OptionSimple(mdb.ZONE, "type,name,text,pwd"), nfs.FILE, m.Option(BUF), nfs.LINE, m.Option(ROW)) diff --git a/misc/vim/tags.go b/misc/vim/tags.go index 913d983a..8d81df1f 100644 --- a/misc/vim/tags.go +++ b/misc/vim/tags.go @@ -7,6 +7,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/ctx" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/tcp" @@ -22,20 +23,20 @@ func _tags_input(m *ice.Message, arg ...string) { if arg[1] == "" { kit.For([]string{"field", "shell", "refer", "section", "chapter", "title"}, func(k string) { kit.If(strings.HasPrefix(k, arg[0]), func() { m.EchoLine(k) }) }) } - m.EchoLine(kit.Join(bash.Complete(m, true, kit.Split(m.Option(PRE)+kit.Select("", ice.SP, !strings.HasSuffix(m.Option(PRE), ice.PT))+m.Option("cmds"))...), ice.SP+ice.NL)) + m.EchoLine(kit.Join(bash.Complete(m, true, kit.Split(m.Option(PRE)+kit.Select("", lex.SP, !strings.HasSuffix(m.Option(PRE), nfs.PT))+m.Option("cmds"))...), lex.SP+lex.NL)) return } switch name := kit.Select("", kit.Slice(kit.Split(arg[1], "\t \n."), -1), 0); name { case "can", "sup", "sub": mdb.ZoneSelect(m).Table(func(value ice.Maps) { - if strings.Contains(value[mdb.ZONE], arg[0]) || arg[0] == ice.PT { + if strings.Contains(value[mdb.ZONE], arg[0]) || arg[0] == nfs.PT { m.EchoLine(value[mdb.ZONE]) } }) default: - mdb.ZoneSelectCB(m.Echo("func").Echo(ice.NL), name, func(value ice.Maps) { - if strings.Contains(value[mdb.NAME], arg[0]) || arg[0] == ice.PT { - m.EchoLine(value[mdb.NAME]+kit.Select("", "(", value[mdb.TYPE] == "function")).EchoLine("%s: %s", value[mdb.NAME], strings.Split(value[mdb.TEXT], ice.NL)[0]) + mdb.ZoneSelectCB(m.Echo("func").Echo(lex.NL), name, func(value ice.Maps) { + if strings.Contains(value[mdb.NAME], arg[0]) || arg[0] == nfs.PT { + m.EchoLine(value[mdb.NAME]+kit.Select("", "(", value[mdb.TYPE] == "function")).EchoLine("%s: %s", value[mdb.NAME], strings.Split(value[mdb.TEXT], lex.NL)[0]) } }) } @@ -77,12 +78,12 @@ func init() { Qrcode(m, args[1]) case wiki.FIELD: m.Search(kit.Select(args[1], args, 2), func(key string, cmd *ice.Command) { - ls := kit.Split(cmd.FileLine(), ice.DF) + ls := kit.Split(cmd.FileLine(), nfs.DF) m.Echo("vi +%s %s", ls[1], ls[0]) }) default: m.Search(args[0], func(key string, cmd *ice.Command) { - ls := kit.Split(cmd.FileLine(), ice.DF) + ls := kit.Split(cmd.FileLine(), nfs.DF) m.Echo("vi +%s %s", ls[1], ls[0]) }) } diff --git a/misc/webview/webview.go b/misc/webview/webview.go index 71d19389..fd6a0726 100644 --- a/misc/webview/webview.go +++ b/misc/webview/webview.go @@ -6,6 +6,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/cli" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/nfs" kit "shylinux.com/x/toolkits" "shylinux.com/x/webview" @@ -40,7 +41,7 @@ func (w WebView) Menu() bool { } else { w.WebView.SetTitle(ice.CONTEXTS) w.WebView.SetSize(200, 60*len(list), webview.HintNone) - w.WebView.Navigate(kit.Format(`data:text/html,`+ice.Pulse.Cmdx(nfs.CAT, path.Join(ice.SRC_TEMPLATE, "webview", "home.html")), kit.Join(list, ice.NL))) + w.WebView.Navigate(kit.Format(`data:text/html,`+ice.Pulse.Cmdx(nfs.CAT, path.Join(ice.SRC_TEMPLATE, "webview", "home.html")), kit.Join(list, lex.NL))) return true } } @@ -58,7 +59,7 @@ func (w WebView) SetSize(width, height int) { } func (w WebView) System(arg ...string) string { return w.Cmdx(cli.SYSTEM, arg) } func (w WebView) Power() string { - ls := strings.Split(w.Cmdx(cli.SYSTEM, "pmset", "-g", "ps"), ice.NL) + ls := strings.Split(w.Cmdx(cli.SYSTEM, "pmset", "-g", "ps"), lex.NL) for _, line := range ls[1:] { ls := kit.Split(line, "\t ;", "\t ;") return ls[2] diff --git a/misc/xterm/winsize_unix.go b/misc/xterm/winsize_unix.go index 9ad69794..99a51b18 100644 --- a/misc/xterm/winsize_unix.go +++ b/misc/xterm/winsize_unix.go @@ -5,6 +5,7 @@ package xterm import ( "os" + "os/exec" "syscall" "unsafe" ) @@ -25,3 +26,6 @@ func ioctl(fd, cmd, ptr uintptr) error { } return nil } +func Setsid(cmd *exec.Cmd) { + cmd.SysProcAttr = &syscall.SysProcAttr{Setsid: true, Setctty: true} +} diff --git a/misc/xterm/winsize_unsupported.go b/misc/xterm/winsize_unsupported.go index 99cece06..99731514 100644 --- a/misc/xterm/winsize_unsupported.go +++ b/misc/xterm/winsize_unsupported.go @@ -1,12 +1,14 @@ //go:build windows // +build windows -package pty +package xterm import ( "errors" "os" + "os/exec" ) +func Setsid(cmd *exec.Cmd) {} func Setsize(*os.File, *Winsize) error { return errors.New("unsupported") } -func Open() (pty, tty *os.File, err error) { return nil, nil, errors.New("unsuported") } +func Open() (pty, tty *os.File, err error) { return nil, nil, errors.New("unsupported") } diff --git a/misc/xterm/xterm.go b/misc/xterm/xterm.go index 3c62a5bd..9d2d7afa 100644 --- a/misc/xterm/xterm.go +++ b/misc/xterm/xterm.go @@ -3,9 +3,9 @@ package xterm import ( "os" "os/exec" - "syscall" ice "shylinux.com/x/icebergs" + "shylinux.com/x/icebergs/base/lex" "shylinux.com/x/icebergs/base/nfs" kit "shylinux.com/x/toolkits" ) @@ -26,7 +26,7 @@ func (s XTerm) Setsize(rows, cols string) error { return Setsize(s.File, &Winsize{Rows: uint16(kit.Int(rows)), Cols: uint16(kit.Int(cols))}) } func (s XTerm) Writeln(data string, arg ...ice.Any) { - s.Write(kit.Format(data, arg...) + ice.NL) + s.Write(kit.Format(data, arg...) + lex.NL) } func (s XTerm) Write(data string) (int, error) { return s.File.Write([]byte(data)) @@ -39,11 +39,11 @@ func Command(m *ice.Message, dir string, cli string, arg ...string) (*XTerm, err cmd.Dir = nfs.MkdirAll(m, kit.Path(dir)) cmd.Env = append(cmd.Env, os.Environ()...) cmd.Env = append(cmd.Env, "TERM=xterm") - cmd.SysProcAttr = &syscall.SysProcAttr{Setsid: true, Setctty: true} pty, tty, err := Open() if err != nil { return nil, err } cmd.Stdin, cmd.Stdout, cmd.Stderr = tty, tty, tty + Setsid(cmd) return &XTerm{cmd, pty}, cmd.Start() }