forked from x/icebergs
add iframe
This commit is contained in:
parent
a91766548a
commit
0b9ec7cab0
@ -149,6 +149,7 @@ const (
|
|||||||
CTX_OPS = "ctx_ops"
|
CTX_OPS = "ctx_ops"
|
||||||
CTX_POD = "ctx_pod"
|
CTX_POD = "ctx_pod"
|
||||||
CTX_ARG = "ctx_arg"
|
CTX_ARG = "ctx_arg"
|
||||||
|
CTX_ENV = "ctx_env"
|
||||||
CTX_PID = "ctx_pid"
|
CTX_PID = "ctx_pid"
|
||||||
CTX_LOG = "ctx_log"
|
CTX_LOG = "ctx_log"
|
||||||
|
|
||||||
|
@ -48,8 +48,8 @@ func ProcessFloat(m *ice.Message, arg ...string) {
|
|||||||
func ProcessHold(m *ice.Message, text ...ice.Any) {
|
func ProcessHold(m *ice.Message, text ...ice.Any) {
|
||||||
m.Process(ice.PROCESS_HOLD, text...)
|
m.Process(ice.PROCESS_HOLD, text...)
|
||||||
}
|
}
|
||||||
func ProcessRefresh(m *ice.Message) {
|
func ProcessRefresh(m *ice.Message, arg ...string) {
|
||||||
m.ProcessRefresh("300ms")
|
m.ProcessRefresh(kit.Select("300ms", arg, 0))
|
||||||
}
|
}
|
||||||
func ProcessRewrite(m *ice.Message, arg ...ice.Any) {
|
func ProcessRewrite(m *ice.Message, arg ...ice.Any) {
|
||||||
m.ProcessRewrite(arg...)
|
m.ProcessRewrite(arg...)
|
||||||
|
@ -21,7 +21,7 @@ func _dream_list(m *ice.Message) *ice.Message {
|
|||||||
if dream, ok := list[value[mdb.NAME]]; ok {
|
if dream, ok := list[value[mdb.NAME]]; ok {
|
||||||
m.Push(mdb.TYPE, dream[mdb.TYPE])
|
m.Push(mdb.TYPE, dream[mdb.TYPE])
|
||||||
m.Push(cli.STATUS, cli.START)
|
m.Push(cli.STATUS, cli.START)
|
||||||
m.PushButton(cli.OPEN, "vimer", "xterm", cli.STOP)
|
m.PushButton(cli.OPEN, "xterm", "vimer", cli.STOP)
|
||||||
m.PushAnchor(strings.Split(MergePod(m, value[mdb.NAME]), "?")[0])
|
m.PushAnchor(strings.Split(MergePod(m, value[mdb.NAME]), "?")[0])
|
||||||
text := []string{}
|
text := []string{}
|
||||||
for _, line := range kit.Split(m.Cmdx(SPACE, value[mdb.NAME], cli.SYSTEM, "git", "diff", "--shortstat"), ice.FS, ice.FS) {
|
for _, line := range kit.Split(m.Cmdx(SPACE, value[mdb.NAME], cli.SYSTEM, "git", "diff", "--shortstat"), ice.FS, ice.FS) {
|
||||||
@ -87,7 +87,6 @@ func _dream_show(m *ice.Message, name string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m.Cmd(nfs.DEFS, path.Join(p, ice.ETC_MISS_SH), m.Config(nfs.SCRIPT))
|
|
||||||
|
|
||||||
// 环境变量
|
// 环境变量
|
||||||
m.Optionv(cli.CMD_DIR, kit.Path(p))
|
m.Optionv(cli.CMD_DIR, kit.Path(p))
|
||||||
@ -119,7 +118,6 @@ const DREAM = "dream"
|
|||||||
func init() {
|
func init() {
|
||||||
Index.MergeCommands(ice.Commands{
|
Index.MergeCommands(ice.Commands{
|
||||||
DREAM: {Name: "dream name path auto create", Help: "梦想家", Actions: ice.MergeActions(ice.Actions{
|
DREAM: {Name: "dream name path auto create", Help: "梦想家", Actions: ice.MergeActions(ice.Actions{
|
||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { m.Config(nfs.SCRIPT, _dream_script) }},
|
|
||||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||||
switch arg[0] {
|
switch arg[0] {
|
||||||
case nfs.REPOS:
|
case nfs.REPOS:
|
||||||
@ -137,19 +135,20 @@ func init() {
|
|||||||
cli.START: {Name: "start", Help: "启动", Hand: func(m *ice.Message, arg ...string) {
|
cli.START: {Name: "start", Help: "启动", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_dream_show(m, m.Option(mdb.NAME))
|
_dream_show(m, m.Option(mdb.NAME))
|
||||||
}},
|
}},
|
||||||
cli.OPEN: {Name: "open", Help: "打开", Hand: func(m *ice.Message, arg ...string) {
|
cli.OPEN: {Name: "open", Help: "系统", Hand: func(m *ice.Message, arg ...string) {
|
||||||
ProcessWebsite(m, m.Option(mdb.NAME), "", "", "")
|
m.ProcessOpen(MergePod(m, m.Option(mdb.NAME), "", ""))
|
||||||
}},
|
}},
|
||||||
"vimer": {Name: "vimer", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
"xterm": {Name: "xterm", Help: "终端", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
ProcessWebsite(m, m.Option(mdb.NAME), "web.code.xterm", mdb.HASH,
|
||||||
|
m.Cmdx(SPACE, m.Option(mdb.NAME), "web.code.xterm", mdb.CREATE, mdb.TYPE, nfs.SH, m.OptionSimple(mdb.NAME), mdb.TEXT, ""))
|
||||||
|
}},
|
||||||
|
"vimer": {Name: "vimer", Help: "编程", Hand: func(m *ice.Message, arg ...string) {
|
||||||
ProcessWebsite(m, m.Option(mdb.NAME), "web.code.vimer", "", "")
|
ProcessWebsite(m, m.Option(mdb.NAME), "web.code.vimer", "", "")
|
||||||
}},
|
}},
|
||||||
"xterm": {Name: "xterm", Help: "命令", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
ProcessWebsite(m, m.Option(mdb.NAME), "web.code.xterm", mdb.HASH, m.Cmdx(SPACE, m.Option(mdb.NAME), "web.code.xterm", mdb.CREATE, mdb.TYPE, nfs.SH, mdb.NAME, "xterm"))
|
|
||||||
}},
|
|
||||||
cli.STOP: {Name: "stop", Help: "停止", Hand: func(m *ice.Message, arg ...string) {
|
cli.STOP: {Name: "stop", Help: "停止", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmd(SPACE, mdb.MODIFY, m.OptionSimple(mdb.NAME), mdb.STATUS, cli.STOP)
|
m.Cmd(SPACE, mdb.MODIFY, m.OptionSimple(mdb.NAME), mdb.STATUS, cli.STOP)
|
||||||
m.Go(func() { m.Cmd(SPACE, m.Option(mdb.NAME), ice.EXIT) })
|
m.Go(func() { m.Cmd(SPACE, m.Option(mdb.NAME), ice.EXIT) })
|
||||||
m.Sleep3s()
|
ctx.ProcessRefresh(m, "1s")
|
||||||
}},
|
}},
|
||||||
DREAM_STOP: {Name: "dream.stop type name", Help: "停止", Hand: func(m *ice.Message, arg ...string) {
|
DREAM_STOP: {Name: "dream.stop type name", Help: "停止", Hand: func(m *ice.Message, arg ...string) {
|
||||||
if m.CmdAppend(SPACE, m.Option(mdb.NAME), mdb.STATUS) == cli.STOP {
|
if m.CmdAppend(SPACE, m.Option(mdb.NAME), mdb.STATUS) == cli.STOP {
|
||||||
@ -161,9 +160,9 @@ func init() {
|
|||||||
}},
|
}},
|
||||||
nfs.TRASH: {Name: "trash", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
nfs.TRASH: {Name: "trash", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmd(nfs.TRASH, mdb.CREATE, path.Join(ice.USR_LOCAL_WORK, m.Option(mdb.NAME)))
|
m.Cmd(nfs.TRASH, mdb.CREATE, path.Join(ice.USR_LOCAL_WORK, m.Option(mdb.NAME)))
|
||||||
m.ProcessRefresh30ms()
|
ctx.ProcessRefresh(m)
|
||||||
}},
|
}},
|
||||||
}, mdb.HashAction(nfs.SCRIPT, _dream_script)), Hand: func(m *ice.Message, arg ...string) {
|
}, mdb.HashAction()), Hand: func(m *ice.Message, arg ...string) {
|
||||||
if len(arg) == 0 {
|
if len(arg) == 0 {
|
||||||
if _dream_list(m); !m.IsMobileUA() {
|
if _dream_list(m); !m.IsMobileUA() {
|
||||||
ctx.DisplayTableCard(m)
|
ctx.DisplayTableCard(m)
|
||||||
@ -174,17 +173,3 @@ func init() {
|
|||||||
}},
|
}},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
var _dream_script = `#! /bin/sh
|
|
||||||
|
|
||||||
if [ -f $PWD/.ish/plug.sh ]; then source $PWD/.ish/plug.sh; elif [ -f $HOME/.ish/plug.sh ]; then source $HOME/.ish/plug.sh; else
|
|
||||||
ctx_temp=$(mktemp); if curl -h &>/dev/null; then curl -o $ctx_temp -fsSL https://shylinux.com; else wget -O $ctx_temp -q http://shylinux.com; fi; source $ctx_temp intshell
|
|
||||||
fi
|
|
||||||
|
|
||||||
require miss.sh
|
|
||||||
ish_miss_prepare_compile
|
|
||||||
ish_miss_prepare_develop
|
|
||||||
ish_miss_prepare_operate
|
|
||||||
|
|
||||||
ish_miss_make; if [ -n "$*" ]; then ish_miss_serve "$@"; fi
|
|
||||||
`
|
|
||||||
|
@ -7,6 +7,7 @@ import (
|
|||||||
|
|
||||||
ice "shylinux.com/x/icebergs"
|
ice "shylinux.com/x/icebergs"
|
||||||
"shylinux.com/x/icebergs/base/cli"
|
"shylinux.com/x/icebergs/base/cli"
|
||||||
|
"shylinux.com/x/icebergs/base/ctx"
|
||||||
"shylinux.com/x/icebergs/base/gdb"
|
"shylinux.com/x/icebergs/base/gdb"
|
||||||
"shylinux.com/x/icebergs/base/mdb"
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
"shylinux.com/x/icebergs/base/nfs"
|
"shylinux.com/x/icebergs/base/nfs"
|
||||||
@ -152,3 +153,9 @@ func MergePodCmd(m Message, pod, cmd string, arg ...ice.Any) string {
|
|||||||
func ProcessWebsite(m *ice.Message, pod, cmd string, arg ...ice.Any) {
|
func ProcessWebsite(m *ice.Message, pod, cmd string, arg ...ice.Any) {
|
||||||
m.ProcessOpen(MergePodCmd(m, pod, cmd, arg...))
|
m.ProcessOpen(MergePodCmd(m, pod, cmd, arg...))
|
||||||
}
|
}
|
||||||
|
func ProcessIframe(m *ice.Message, link string, arg ...string) {
|
||||||
|
if len(arg) == 0 || arg[0] != ice.RUN {
|
||||||
|
arg = []string{m.Cmdx("web.chat.iframe", mdb.CREATE, mdb.LINK, link)}
|
||||||
|
}
|
||||||
|
ctx.ProcessField(m, "web.chat.iframe", arg, arg...)
|
||||||
|
}
|
||||||
|
@ -353,7 +353,9 @@ func init() {
|
|||||||
ssh.SOURCE_STDIO: {Name: "source.stdio", Help: "终端", Hand: func(m *ice.Message, arg ...string) {
|
ssh.SOURCE_STDIO: {Name: "source.stdio", Help: "终端", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Go(func() {
|
m.Go(func() {
|
||||||
m.Sleep("2s")
|
m.Sleep("2s")
|
||||||
m.Cmd(ssh.PRINTF, kit.Dict(nfs.CONTENT, ice.Render(m, ice.RENDER_QRCODE, m.Cmdx(SPACE, DOMAIN))+ice.NL))
|
url := m.Cmdx(SPACE, DOMAIN)
|
||||||
|
url2 := kit.MergePOD(m.Cmd(SPIDE, ice.DEV).Append(CLIENT_URL), ice.Info.NodeName)
|
||||||
|
m.Cmd(ssh.PRINTF, kit.Dict(nfs.CONTENT, ice.Render(m, ice.RENDER_QRCODE, url)+ice.NL+kit.Select("", url2+ice.NL, url != url2)))
|
||||||
})
|
})
|
||||||
}},
|
}},
|
||||||
DOMAIN: {Name: "domain", Help: "域名", Hand: func(m *ice.Message, arg ...string) {
|
DOMAIN: {Name: "domain", Help: "域名", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
@ -10,6 +10,7 @@ import (
|
|||||||
ice "shylinux.com/x/icebergs"
|
ice "shylinux.com/x/icebergs"
|
||||||
"shylinux.com/x/icebergs/base/aaa"
|
"shylinux.com/x/icebergs/base/aaa"
|
||||||
"shylinux.com/x/icebergs/base/cli"
|
"shylinux.com/x/icebergs/base/cli"
|
||||||
|
"shylinux.com/x/icebergs/base/ctx"
|
||||||
"shylinux.com/x/icebergs/base/gdb"
|
"shylinux.com/x/icebergs/base/gdb"
|
||||||
"shylinux.com/x/icebergs/base/mdb"
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
"shylinux.com/x/icebergs/base/nfs"
|
"shylinux.com/x/icebergs/base/nfs"
|
||||||
@ -154,7 +155,7 @@ func _space_echo(msg *ice.Message, source, target []string, c *websocket.Conn, n
|
|||||||
msg.Optionv(ice.MSG_SOURCE, source)
|
msg.Optionv(ice.MSG_SOURCE, source)
|
||||||
msg.Optionv(ice.MSG_TARGET, target)
|
msg.Optionv(ice.MSG_TARGET, target)
|
||||||
if e := c.WriteMessage(1, []byte(msg.FormatMeta())); msg.Warn(e) { // 回复失败
|
if e := c.WriteMessage(1, []byte(msg.FormatMeta())); msg.Warn(e) { // 回复失败
|
||||||
mdb.HashRemove(msg, mdb.NAME, name)
|
msg.Go(func() { mdb.HashRemove(msg, mdb.NAME, name) })
|
||||||
c.Close()
|
c.Close()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -349,15 +350,20 @@ func init() {
|
|||||||
m.StatusTimeCount("nCPU", ncpu, "nmem", kit.Format("%.2fG", nmem/1000.0))
|
m.StatusTimeCount("nCPU", ncpu, "nmem", kit.Format("%.2fG", nmem/1000.0))
|
||||||
m.Debug("what %v", m.FormatMeta())
|
m.Debug("what %v", m.FormatMeta())
|
||||||
}},
|
}},
|
||||||
cli.OPEN: {Name: "open", Help: "打开", Hand: func(m *ice.Message, arg ...string) {
|
cli.OPEN: {Name: "open", Help: "系统", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.ProcessOpen(MergePod(m, m.Option(mdb.NAME), "", ""))
|
ProcessIframe(m, MergePod(m, m.Option(mdb.NAME), "", ""), arg...)
|
||||||
}},
|
}},
|
||||||
"vimer": {Name: "vimer", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
"xterm": {Name: "xterm", Help: "终端", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.ProcessOpen(MergePod(m, m.Option(mdb.NAME)+"/cmd/web.code.vimer", "", ""))
|
ProcessIframe(m, MergePodCmd(m, m.Option(mdb.NAME), "web.code.xterm", mdb.HASH,
|
||||||
|
m.Cmdx(SPACE, m.Option(mdb.NAME), "web.code.xterm", mdb.CREATE, mdb.TYPE, nfs.SH, m.OptionSimple(mdb.NAME), mdb.TEXT, "")), arg...)
|
||||||
}},
|
}},
|
||||||
"xterm": {Name: "xterm", Help: "命令", Hand: func(m *ice.Message, arg ...string) {
|
"vimer": {Name: "vimer", Help: "编程", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.ProcessOpen(MergePod(m, m.Option(mdb.NAME)+"/cmd/web.code.xterm", mdb.HASH,
|
ProcessIframe(m, MergePodCmd(m, m.Option(mdb.NAME), "web.code.vimer", "", ""), arg...)
|
||||||
m.Cmdx(SPACE, m.Option(mdb.NAME), "web.code.xterm", mdb.CREATE, mdb.TYPE, nfs.SH, mdb.NAME, "xterm")))
|
}},
|
||||||
|
"exit": {Name: "exit", Help: "关闭", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmd("", m.Option(mdb.NAME), "close")
|
||||||
|
m.Cmd("", m.Option(mdb.NAME), "exit")
|
||||||
|
ctx.ProcessRefresh(m)
|
||||||
}},
|
}},
|
||||||
}, mdb.HashCloseAction()), Hand: func(m *ice.Message, arg ...string) {
|
}, mdb.HashCloseAction()), Hand: func(m *ice.Message, arg ...string) {
|
||||||
if len(arg) < 2 { // 节点列表
|
if len(arg) < 2 { // 节点列表
|
||||||
@ -365,7 +371,13 @@ func init() {
|
|||||||
m.Tables(func(value ice.Maps) {
|
m.Tables(func(value ice.Maps) {
|
||||||
switch value[mdb.TYPE] {
|
switch value[mdb.TYPE] {
|
||||||
case SERVER, WORKER:
|
case SERVER, WORKER:
|
||||||
m.PushButton(cli.OPEN, "vimer", "xterm")
|
m.PushButton(cli.OPEN, "xterm", "vimer")
|
||||||
|
case CHROME:
|
||||||
|
if value[mdb.NAME] == kit.Select("", kit.Split(m.Option(ice.MSG_DAEMON), ice.PT), 0) {
|
||||||
|
m.PushButton("")
|
||||||
|
} else {
|
||||||
|
m.PushButton("exit")
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
m.PushButton("")
|
m.PushButton("")
|
||||||
}
|
}
|
||||||
|
26
core/chat/iframe.go
Normal file
26
core/chat/iframe.go
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package chat
|
||||||
|
|
||||||
|
import (
|
||||||
|
ice "shylinux.com/x/icebergs"
|
||||||
|
"shylinux.com/x/icebergs/base/cli"
|
||||||
|
"shylinux.com/x/icebergs/base/ctx"
|
||||||
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
|
)
|
||||||
|
|
||||||
|
const IFRAME = "iframe"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
Index.MergeCommands(ice.Commands{
|
||||||
|
IFRAME: {Name: "iframe hash auto", Help: "网页", Actions: ice.MergeActions(ice.Actions{
|
||||||
|
mdb.CREATE: {Name: "create link name type", Help: "创建"},
|
||||||
|
}, mdb.HashAction(mdb.SHORT, mdb.LINK, mdb.FIELD, "time,hash,type,name,link")), Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
if mdb.HashSelect(m, arg...); len(arg) == 0 || arg[0] == "" {
|
||||||
|
m.Action(mdb.CREATE, mdb.PRUNES)
|
||||||
|
} else {
|
||||||
|
m.StatusTime(mdb.LINK, m.Append(mdb.LINK))
|
||||||
|
m.Action(cli.OPEN)
|
||||||
|
ctx.DisplayLocal(m, "")
|
||||||
|
}
|
||||||
|
}},
|
||||||
|
})
|
||||||
|
}
|
@ -128,7 +128,8 @@ func _autogen_version(m *ice.Message) {
|
|||||||
m.Cmd(cli.SYSTEM, GIT, "remote", "add", "origin", "https://"+mod)
|
m.Cmd(cli.SYSTEM, GIT, "remote", "add", "origin", "https://"+mod)
|
||||||
m.Cmd("web.code.git.repos", mdb.CREATE, "repos", "https://"+mod, mdb.NAME, path.Base(mod), nfs.PATH, nfs.PWD)
|
m.Cmd("web.code.git.repos", mdb.CREATE, "repos", "https://"+mod, mdb.NAME, path.Base(mod), nfs.PATH, nfs.PWD)
|
||||||
m.Cmd(cli.SYSTEM, GIT, "add", ice.GO_MOD, ice.SRC, ice.ETC_MISS_SH)
|
m.Cmd(cli.SYSTEM, GIT, "add", ice.GO_MOD, ice.SRC, ice.ETC_MISS_SH)
|
||||||
m.Cmd(nfs.DEFS, ".gitignore", kit.Format(`src/binpack.go
|
m.Cmd(nfs.DEFS, ".gitignore", kit.Format(`
|
||||||
|
src/binpack.go
|
||||||
src/version.go
|
src/version.go
|
||||||
etc/
|
etc/
|
||||||
bin/
|
bin/
|
||||||
@ -143,9 +144,7 @@ usr/
|
|||||||
|
|
||||||
m.Cmd(nfs.SAVE, ice.SRC_VERSION_GO, kit.Format(`package main
|
m.Cmd(nfs.SAVE, ice.SRC_VERSION_GO, kit.Format(`package main
|
||||||
|
|
||||||
import (
|
import ice "shylinux.com/x/icebergs"
|
||||||
ice "shylinux.com/x/icebergs"
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
ice.Info.Make = ice.MakeInfo{
|
ice.Info.Make = ice.MakeInfo{
|
||||||
@ -167,8 +166,8 @@ func init() {
|
|||||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||||
switch arg[0] {
|
switch arg[0] {
|
||||||
case cli.MAIN:
|
case cli.MAIN:
|
||||||
m.Option(nfs.DIR_ROOT, ice.SRC)
|
m.Option(nfs.DIR_ROOT, m.Option(nfs.PATH))
|
||||||
m.Cmdy(nfs.DIR, nfs.PWD, nfs.DIR_CLI_FIELDS, kit.Dict(nfs.DIR_REG, `.*\.go`)).RenameAppend(nfs.PATH, arg[0])
|
m.Cmdy(nfs.DIR, nfs.PWD, nfs.DIR_CLI_FIELDS, kit.Dict(nfs.DIR_REG, `.*\.go$`)).RenameAppend(nfs.PATH, arg[0])
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
mdb.CREATE: {Name: "create name=hi help type=Zone,Hash,Data,Code main=main.go@key zone key", Help: "模块", Hand: func(m *ice.Message, arg ...string) {
|
mdb.CREATE: {Name: "create name=hi help type=Zone,Hash,Data,Code main=main.go@key zone key", Help: "模块", Hand: func(m *ice.Message, arg ...string) {
|
||||||
@ -177,28 +176,25 @@ func init() {
|
|||||||
m.Option(mdb.TEXT, kit.Format("`name:\"%s\" help:\"%s\"`", _defs_list(m), m.Option(mdb.HELP)))
|
m.Option(mdb.TEXT, kit.Format("`name:\"%s\" help:\"%s\"`", _defs_list(m), m.Option(mdb.HELP)))
|
||||||
|
|
||||||
nfs.OptionFiles(m, nfs.DiskFile)
|
nfs.OptionFiles(m, nfs.DiskFile)
|
||||||
if p := path.Join(ice.SRC, m.Option(mdb.ZONE), kit.Keys(m.Option(mdb.NAME), GO)); !nfs.ExistsFile(m, p) {
|
if p := path.Join(m.Option(nfs.PATH), m.Option(mdb.ZONE), kit.Keys(m.Option(mdb.NAME), GO)); !nfs.ExistsFile(m, p) {
|
||||||
_autogen_module(m, p)
|
_autogen_module(m, p)
|
||||||
_autogen_import(m, path.Join(ice.SRC, m.Option(cli.MAIN)), m.Option(mdb.ZONE), _autogen_mod(m, ice.GO_MOD))
|
_autogen_import(m, path.Join(m.Option(nfs.PATH), m.Option(cli.MAIN)), m.Option(mdb.ZONE), _autogen_mod(m, ice.GO_MOD))
|
||||||
}
|
}
|
||||||
if p := path.Join(ice.SRC, m.Option(mdb.ZONE), kit.Keys(m.Option(mdb.NAME), SHY)); !nfs.ExistsFile(m, p) {
|
if p := path.Join(m.Option(nfs.PATH), m.Option(mdb.ZONE), kit.Keys(m.Option(mdb.NAME), SHY)); !nfs.ExistsFile(m, p) {
|
||||||
_autogen_script(m, p)
|
_autogen_script(m, p)
|
||||||
_autogen_source(m, path.Join(ice.SRC, m.Option(cli.MAIN)), p)
|
_autogen_source(m, path.Join(m.Option(nfs.PATH), m.Option(cli.MAIN)), p)
|
||||||
}
|
}
|
||||||
m.Option(nfs.FILE, path.Join(m.Option(mdb.ZONE), kit.Keys(m.Option(mdb.NAME), GO)))
|
m.Option(nfs.FILE, path.Join(m.Option(mdb.ZONE), kit.Keys(m.Option(mdb.NAME), GO)))
|
||||||
_autogen_version(m.Spawn())
|
_autogen_version(m.Spawn())
|
||||||
}},
|
}},
|
||||||
ssh.SCRIPT: {Name: "script", Help: "脚本:生成 etc/miss.sh", Hand: func(m *ice.Message, arg ...string) {
|
ssh.SCRIPT: {Name: "script", Help: "脚本:生成 etc/miss.sh", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmd(nfs.DEFS, ice.ETC_MISS_SH, m.Conf(web.DREAM, kit.Keym(nfs.SCRIPT)))
|
m.Cmd(nfs.DEFS, ice.ETC_MISS_SH, _miss_script)
|
||||||
defer m.Cmdy(nfs.CAT, ice.ETC_MISS_SH)
|
defer m.Cmdy(nfs.CAT, ice.ETC_MISS_SH)
|
||||||
|
|
||||||
m.Cmdy(nfs.DIR, ice.ETC_MISS_SH)
|
m.Cmdy(nfs.DIR, ice.ETC_MISS_SH)
|
||||||
m.Cmdy(nfs.DIR, ice.GO_MOD)
|
m.Cmdy(nfs.DIR, ice.GO_MOD)
|
||||||
m.Cmdy(nfs.DIR, ice.GO_SUM)
|
m.Cmdy(nfs.DIR, ice.GO_SUM)
|
||||||
}},
|
}},
|
||||||
nfs.TRASH: {Name: "trash", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmd(nfs.TRASH, path.Join(ice.SRC, m.Option(nfs.PATH)))
|
|
||||||
}},
|
|
||||||
BINPACK: {Name: "binpack", Help: "打包:生成 src/binpack.go", Hand: func(m *ice.Message, arg ...string) {
|
BINPACK: {Name: "binpack", Help: "打包:生成 src/binpack.go", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_autogen_version(m)
|
_autogen_version(m)
|
||||||
if m.Cmd(BINPACK, mdb.CREATE); nfs.ExistsFile(m, ice.USR_RELEASE) && m.Option(ice.MSG_USERPOD) == "" {
|
if m.Cmd(BINPACK, mdb.CREATE); nfs.ExistsFile(m, ice.USR_RELEASE) && m.Option(ice.MSG_USERPOD) == "" {
|
||||||
@ -207,7 +203,7 @@ func init() {
|
|||||||
m.Cmdy(nfs.DIR, "usr/release/binpack.go")
|
m.Cmdy(nfs.DIR, "usr/release/binpack.go")
|
||||||
m.Cmdy(nfs.DIR, "usr/release/conf.go")
|
m.Cmdy(nfs.DIR, "usr/release/conf.go")
|
||||||
}
|
}
|
||||||
m.Cmdy(nfs.CAT, "src/version.go")
|
m.Cmdy(nfs.CAT, ice.SRC_VERSION_GO)
|
||||||
}},
|
}},
|
||||||
RELAY: {Name: "relay alias username host port list", Help: "跳板", Hand: func(m *ice.Message, arg ...string) {
|
RELAY: {Name: "relay alias username host port list", Help: "跳板", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmd(COMPILE, RELAY)
|
m.Cmd(COMPILE, RELAY)
|
||||||
@ -216,7 +212,21 @@ func init() {
|
|||||||
kit.Formats(kit.Dict(m.OptionSimple("username,host,port,list"))))
|
kit.Formats(kit.Dict(m.OptionSimple("username,host,port,list"))))
|
||||||
}},
|
}},
|
||||||
}, Hand: func(m *ice.Message, arg ...string) {
|
}, Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(nfs.CAT, kit.Select("version.go", arg, 0), kit.Dict(nfs.DIR_ROOT, ice.SRC))
|
m.Cmdy(nfs.CAT, kit.Select(path.Base(ice.SRC_VERSION_GO), arg, 0), kit.Dict(nfs.DIR_ROOT, ice.SRC))
|
||||||
}},
|
}},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var _miss_script = `#! /bin/sh
|
||||||
|
|
||||||
|
if [ -f $PWD/.ish/plug.sh ]; then source $PWD/.ish/plug.sh; elif [ -f $HOME/.ish/plug.sh ]; then source $HOME/.ish/plug.sh; else
|
||||||
|
ctx_temp=$(mktemp); if curl -h &>/dev/null; then curl -o $ctx_temp -fsSL https://shylinux.com; else wget -O $ctx_temp -q http://shylinux.com; fi; source $ctx_temp intshell
|
||||||
|
fi
|
||||||
|
|
||||||
|
require miss.sh
|
||||||
|
ish_miss_prepare_compile
|
||||||
|
ish_miss_prepare_develop
|
||||||
|
ish_miss_prepare_operate
|
||||||
|
|
||||||
|
ish_miss_make; if [ -n "$*" ]; then ish_miss_serve "$@"; fi
|
||||||
|
`
|
||||||
|
@ -72,6 +72,7 @@ func _binpack_all(m *ice.Message) {
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
|
|
||||||
ice "shylinux.com/x/icebergs"
|
ice "shylinux.com/x/icebergs"
|
||||||
"shylinux.com/x/icebergs/base/nfs"
|
"shylinux.com/x/icebergs/base/nfs"
|
||||||
)
|
)
|
||||||
@ -129,7 +130,7 @@ func init() {
|
|||||||
}
|
}
|
||||||
list[dir] = true
|
list[dir] = true
|
||||||
|
|
||||||
m.Cmd(nfs.DIR, dir, nfs.PATH, kit.Dict(nfs.DIR_ROOT, nfs.PWD, nfs.DIR_REG, ".*.(shy|js)")).Tables(func(value ice.Maps) {
|
m.Cmd(nfs.DIR, dir, nfs.PATH, kit.Dict(nfs.DIR_ROOT, nfs.PWD, nfs.DIR_REG, `.*\.(sh|shy|js)$`)).Tables(func(value ice.Maps) {
|
||||||
if list[value[nfs.PATH]] {
|
if list[value[nfs.PATH]] {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -153,8 +154,6 @@ func init() {
|
|||||||
mdb.INSERT: {Name: "insert path", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
mdb.INSERT: {Name: "insert path", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||||
mdb.HashCreate(m, nfs.PATH, m.Option(nfs.PATH))
|
mdb.HashCreate(m, nfs.PATH, m.Option(nfs.PATH))
|
||||||
}},
|
}},
|
||||||
}, mdb.HashAction(mdb.SHORT, nfs.PATH)), Hand: func(m *ice.Message, arg ...string) {
|
}, mdb.HashAction(mdb.SHORT, nfs.PATH))},
|
||||||
mdb.HashSelect(m)
|
|
||||||
}},
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -47,6 +47,11 @@ func init() {
|
|||||||
mdb.ENGINE: {Hand: func(m *ice.Message, arg ...string) { _c_exec(m, arg...) }},
|
mdb.ENGINE: {Hand: func(m *ice.Message, arg ...string) { _c_exec(m, arg...) }},
|
||||||
NAVIGATE: {Hand: func(m *ice.Message, arg ...string) { _c_tags(m, MAN, "ctags", "-a", "-R", nfs.PWD) }},
|
NAVIGATE: {Hand: func(m *ice.Message, arg ...string) { _c_tags(m, MAN, "ctags", "-a", "-R", nfs.PWD) }},
|
||||||
}, PlugAction(), LangAction())},
|
}, PlugAction(), LangAction())},
|
||||||
|
H: {Name: "c path auto", Help: "系统", Actions: ice.MergeActions(ice.Actions{
|
||||||
|
mdb.RENDER: {Hand: func(m *ice.Message, arg ...string) { _c_show(m, arg...) }},
|
||||||
|
mdb.ENGINE: {Hand: func(m *ice.Message, arg ...string) { _c_exec(m, arg...) }},
|
||||||
|
NAVIGATE: {Hand: func(m *ice.Message, arg ...string) { _c_tags(m, MAN, "ctags", "-a", "-R", nfs.PWD) }},
|
||||||
|
}, PlugAction(), LangAction())},
|
||||||
MAN: {Name: MAN, Help: "手册", Actions: ice.MergeActions(ice.Actions{
|
MAN: {Name: MAN, Help: "手册", Actions: ice.MergeActions(ice.Actions{
|
||||||
mdb.RENDER: {Hand: func(m *ice.Message, arg ...string) {
|
mdb.RENDER: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
if len(arg) == 1 {
|
if len(arg) == 1 {
|
||||||
|
@ -22,7 +22,7 @@ var Index = &ice.Context{Name: CODE, Help: "编程中心", Commands: ice.Command
|
|||||||
func init() {
|
func init() {
|
||||||
web.Index.Register(Index, &web.Frame{},
|
web.Index.Register(Index, &web.Frame{},
|
||||||
INSTALL, WEBPACK, BINPACK, AUTOGEN, COMPILE, PUBLISH, UPGRADE,
|
INSTALL, WEBPACK, BINPACK, AUTOGEN, COMPILE, PUBLISH, UPGRADE,
|
||||||
FAVOR, XTERM, INNER, VIMER, BENCH, PPROF,
|
FAVOR, XTERM, INNER, VIMER, PPROF, BENCH,
|
||||||
C, SH, SHY, GO, JS,
|
C, SH, SHY, GO, JS,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
chapter "源码"
|
chapter "源码"
|
||||||
|
|
||||||
code.go
|
code.go
|
||||||
code.shy
|
code.shy
|
||||||
|
|
||||||
|
section "开发流程"
|
||||||
install.go
|
install.go
|
||||||
webpack.go
|
webpack.go
|
||||||
binpack.go
|
binpack.go
|
||||||
@ -11,20 +11,23 @@ compile.go
|
|||||||
publish.go
|
publish.go
|
||||||
upgrade.go
|
upgrade.go
|
||||||
|
|
||||||
oauth.go
|
section "编程工具"
|
||||||
favor.go
|
favor.go
|
||||||
xterm.go
|
xterm.go
|
||||||
xterm.shy
|
xterm.shy
|
||||||
inner.go
|
inner.go
|
||||||
vimer.go
|
vimer.go
|
||||||
bench.go
|
|
||||||
pprof.go
|
pprof.go
|
||||||
|
bench.go
|
||||||
|
oauth.go
|
||||||
case.go
|
case.go
|
||||||
|
|
||||||
|
section "编程语言"
|
||||||
c.go
|
c.go
|
||||||
sh.go
|
sh.go
|
||||||
shy.go
|
shy.go
|
||||||
|
zml.go
|
||||||
|
py.go
|
||||||
go.go
|
go.go
|
||||||
js.go
|
js.go
|
||||||
py.go
|
|
||||||
zml.go
|
|
||||||
|
@ -2,19 +2,18 @@ package code
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"path"
|
"path"
|
||||||
|
"runtime"
|
||||||
|
|
||||||
ice "shylinux.com/x/icebergs"
|
ice "shylinux.com/x/icebergs"
|
||||||
"shylinux.com/x/icebergs/base/cli"
|
"shylinux.com/x/icebergs/base/cli"
|
||||||
"shylinux.com/x/icebergs/base/mdb"
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
"shylinux.com/x/icebergs/base/nfs"
|
"shylinux.com/x/icebergs/base/nfs"
|
||||||
"shylinux.com/x/icebergs/base/tcp"
|
|
||||||
"shylinux.com/x/icebergs/base/web"
|
"shylinux.com/x/icebergs/base/web"
|
||||||
kit "shylinux.com/x/toolkits"
|
kit "shylinux.com/x/toolkits"
|
||||||
)
|
)
|
||||||
|
|
||||||
func _compile_target(m *ice.Message, arg ...string) (string, string, string, string) {
|
func _compile_target(m *ice.Message, arg ...string) (string, string, string, string) {
|
||||||
arch := m.Conf(cli.RUNTIME, kit.Keys(tcp.HOST, cli.GOARCH))
|
arch, goos := runtime.GOARCH, runtime.GOOS
|
||||||
goos := m.Conf(cli.RUNTIME, kit.Keys(tcp.HOST, cli.GOOS))
|
|
||||||
main, file := ice.SRC_MAIN_GO, ""
|
main, file := ice.SRC_MAIN_GO, ""
|
||||||
for _, k := range arg {
|
for _, k := range arg {
|
||||||
switch k {
|
switch k {
|
||||||
@ -43,8 +42,8 @@ const COMPILE = "compile"
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.Merge(&ice.Context{Configs: ice.Configs{
|
Index.Merge(&ice.Context{Configs: ice.Configs{
|
||||||
COMPILE: {Name: COMPILE, Help: "编译", Value: kit.Data(nfs.PATH, ice.USR_PUBLISH,
|
COMPILE: {Value: kit.Data(nfs.PATH, ice.USR_PUBLISH,
|
||||||
cli.ENV, kit.Dict("GOPROXY", "https://goproxy.cn,direct", "GOPRIVATE", "shylinux.com,github.com", "CGO_ENABLED", "0"),
|
cli.ENV, kit.Dict("GOPRIVATE", "shylinux.com,github.com", "GOPROXY", "https://goproxy.cn,direct", "CGO_ENABLED", "0"),
|
||||||
)},
|
)},
|
||||||
}, Commands: ice.Commands{
|
}, Commands: ice.Commands{
|
||||||
COMPILE: {Name: "compile arch=amd64,386,arm,arm64,mipsle os=linux,darwin,windows src=src/main.go@key run binpack relay", Help: "编译", Actions: ice.Actions{
|
COMPILE: {Name: "compile arch=amd64,386,arm,arm64,mipsle os=linux,darwin,windows src=src/main.go@key run binpack relay", Help: "编译", Actions: ice.Actions{
|
||||||
@ -55,7 +54,7 @@ func init() {
|
|||||||
m.Cmdy(AUTOGEN, BINPACK)
|
m.Cmdy(AUTOGEN, BINPACK)
|
||||||
}},
|
}},
|
||||||
RELAY: {Name: "relay", Help: "跳板", Hand: func(m *ice.Message, arg ...string) {
|
RELAY: {Name: "relay", Help: "跳板", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmd(COMPILE, ice.SRC_RELAY_GO, path.Join(ice.USR_PUBLISH, RELAY))
|
m.Cmdy(COMPILE, ice.SRC_RELAY_GO, path.Join(ice.USR_PUBLISH, RELAY))
|
||||||
}},
|
}},
|
||||||
}, Hand: func(m *ice.Message, arg ...string) {
|
}, Hand: func(m *ice.Message, arg ...string) {
|
||||||
// 下载依赖
|
// 下载依赖
|
||||||
@ -77,7 +76,7 @@ func init() {
|
|||||||
m.Cmdy(nfs.DIR, file, nfs.DIR_WEB_FIELDS)
|
m.Cmdy(nfs.DIR, file, nfs.DIR_WEB_FIELDS)
|
||||||
m.Cmdy(PUBLISH, ice.CONTEXTS)
|
m.Cmdy(PUBLISH, ice.CONTEXTS)
|
||||||
m.StatusTimeCount()
|
m.StatusTimeCount()
|
||||||
m.Option(ice.MSG_PROCESS, "")
|
m.Process("")
|
||||||
}},
|
}},
|
||||||
}})
|
}})
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ func init() {
|
|||||||
INNER: {Name: "inner", Help: "源码", Hand: func(m *ice.Message, arg ...string) {
|
INNER: {Name: "inner", Help: "源码", Hand: func(m *ice.Message, arg ...string) {
|
||||||
ctx.Process(m, m.ActionKey(), m.OptionSplit(nfs.PATH, nfs.FILE, nfs.LINE), arg...)
|
ctx.Process(m, m.ActionKey(), m.OptionSplit(nfs.PATH, nfs.FILE, nfs.LINE), arg...)
|
||||||
}},
|
}},
|
||||||
XTERM: {Name: "xterm", Help: "命令", Hand: func(m *ice.Message, arg ...string) {
|
XTERM: {Name: "xterm", Help: "终端", Hand: func(m *ice.Message, arg ...string) {
|
||||||
ctx.Process(m, m.ActionKey(), m.OptionSimple(mdb.TYPE, mdb.NAME, mdb.TEXT), arg...)
|
ctx.Process(m, m.ActionKey(), m.OptionSimple(mdb.TYPE, mdb.NAME, mdb.TEXT), arg...)
|
||||||
}},
|
}},
|
||||||
}, mdb.ZoneAction(mdb.SHORT, mdb.ZONE, mdb.FIELD, "time,id,type,name,text,path,file,line")), Hand: func(m *ice.Message, arg ...string) {
|
}, mdb.ZoneAction(mdb.SHORT, mdb.ZONE, mdb.FIELD, "time,id,type,name,text,path,file,line")), Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
@ -135,7 +135,7 @@ const SUM = "sum"
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.MergeCommands(ice.Commands{
|
Index.MergeCommands(ice.Commands{
|
||||||
GO: {Name: "go", Help: "后端", Actions: ice.MergeActions(ice.Actions{
|
GO: {Name: "go path auto", Help: "后端", Actions: ice.MergeActions(ice.Actions{
|
||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmd(NAVIGATE, mdb.CREATE, GODOC, m.PrefixKey())
|
m.Cmd(NAVIGATE, mdb.CREATE, GODOC, m.PrefixKey())
|
||||||
}},
|
}},
|
||||||
|
@ -80,12 +80,12 @@ func _install_build(m *ice.Message, arg ...string) string {
|
|||||||
|
|
||||||
// 编译
|
// 编译
|
||||||
if msg := m.Cmd(cli.SYSTEM, cli.MAKE, "-j8"); !cli.IsSuccess(msg) {
|
if msg := m.Cmd(cli.SYSTEM, cli.MAKE, "-j8"); !cli.IsSuccess(msg) {
|
||||||
return msg.Append(cli.CMD_ERR)
|
return msg.Append(cli.CMD_ERR) + msg.Append(cli.CMD_OUT)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 安装
|
// 安装
|
||||||
if msg := m.Cmd(cli.SYSTEM, cli.MAKE, "PREFIX="+pp, INSTALL); !cli.IsSuccess(msg) {
|
if msg := m.Cmd(cli.SYSTEM, cli.MAKE, "PREFIX="+pp, INSTALL); !cli.IsSuccess(msg) {
|
||||||
return msg.Append(cli.CMD_ERR)
|
return msg.Append(cli.CMD_ERR) + msg.Append(cli.CMD_OUT)
|
||||||
}
|
}
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
@ -178,7 +178,10 @@ const INSTALL = "install"
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.MergeCommands(ice.Commands{
|
Index.MergeCommands(ice.Commands{
|
||||||
INSTALL: {Name: "install name port path:text auto download", Help: "安装", Meta: kit.Dict(), Actions: ice.MergeActions(ice.Actions{
|
INSTALL: {Name: "install name port path:text auto download", Help: "安装", Actions: ice.MergeActions(ice.Actions{
|
||||||
|
nfs.PATH: {Name: "path", Help: "路径", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Echo(_install_path(m, kit.Select("", arg, 0)))
|
||||||
|
}},
|
||||||
web.DOWNLOAD: {Name: "download link path", Help: "下载", Hand: func(m *ice.Message, arg ...string) {
|
web.DOWNLOAD: {Name: "download link path", Help: "下载", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_install_download(m)
|
_install_download(m)
|
||||||
}},
|
}},
|
||||||
@ -208,9 +211,6 @@ func init() {
|
|||||||
nfs.TRASH: {Name: "trash", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
nfs.TRASH: {Name: "trash", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_install_trash(m, arg...)
|
_install_trash(m, arg...)
|
||||||
}},
|
}},
|
||||||
nfs.PATH: {Name: "path", Help: "路径", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Echo(_install_path(m, kit.Select("", arg, 0)))
|
|
||||||
}},
|
|
||||||
nfs.SOURCE: {Name: "source link path", Help: "源码", Hand: func(m *ice.Message, arg ...string) {
|
nfs.SOURCE: {Name: "source link path", Help: "源码", Hand: func(m *ice.Message, arg ...string) {
|
||||||
if m.Option(nfs.DIR_ROOT, path.Join(_install_path(m, ""), _INSTALL)); !nfs.ExistsFile(m, m.Option(nfs.DIR_ROOT)) {
|
if m.Option(nfs.DIR_ROOT, path.Join(_install_path(m, ""), _INSTALL)); !nfs.ExistsFile(m, m.Option(nfs.DIR_ROOT)) {
|
||||||
m.Option(nfs.DIR_ROOT, path.Join(_install_path(m, "")))
|
m.Option(nfs.DIR_ROOT, path.Join(_install_path(m, "")))
|
||||||
|
@ -71,7 +71,7 @@ func init() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
"/oauth": {Name: "/oauth", Help: "授权", Actions: ice.MergeActions(ice.Actions{}, ctx.CmdAction()), Hand: func(m *ice.Message, arg ...string) {
|
web.P(OAUTH): {Name: "/oauth", Help: "授权", Actions: ice.MergeActions(ice.Actions{}, ctx.CmdAction()), Hand: func(m *ice.Message, arg ...string) {
|
||||||
if m.Warn(m.Option(CODE) == "", ice.ErrNotValid) {
|
if m.Warn(m.Option(CODE) == "", ice.ErrNotValid) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -42,13 +42,14 @@ func _publish_list(m *ice.Message, arg ...string) {
|
|||||||
}
|
}
|
||||||
func _publish_bin_list(m *ice.Message, dir string) {
|
func _publish_bin_list(m *ice.Message, dir string) {
|
||||||
p := m.Option(cli.CMD_DIR, dir)
|
p := m.Option(cli.CMD_DIR, dir)
|
||||||
for _, ls := range strings.Split(strings.TrimSpace(m.Cmd(cli.SYSTEM, "bash", "-c", "ls |xargs file |grep executable").Append(cli.CMD_OUT)), ice.NL) {
|
for _, ls := range strings.Split(strings.TrimSpace(m.Cmdx(cli.SYSTEM, "bash", "-c", "ls |xargs file |grep executable")), ice.NL) {
|
||||||
if file := strings.TrimSpace(strings.Split(ls, ":")[0]); file != "" {
|
if file := strings.TrimSpace(strings.Split(ls, ":")[0]); file != "" {
|
||||||
if s, e := nfs.StatFile(m, path.Join(p, file)); e == nil {
|
if s, e := nfs.StatFile(m, path.Join(p, file)); e == nil {
|
||||||
m.Push(mdb.TIME, s.ModTime())
|
m.Push(mdb.TIME, s.ModTime())
|
||||||
m.Push(nfs.SIZE, kit.FmtSize(s.Size()))
|
m.Push(nfs.SIZE, kit.FmtSize(s.Size()))
|
||||||
m.Push(nfs.FILE, file)
|
m.Push(nfs.PATH, file)
|
||||||
m.PushDownload(mdb.LINK, file, path.Join(p, file))
|
m.PushDownload(mdb.LINK, file, path.Join(p, file))
|
||||||
|
m.PushButton(nfs.TRASH)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -72,19 +73,19 @@ func init() {
|
|||||||
m.Config(ice.CONTEXTS, _contexts)
|
m.Config(ice.CONTEXTS, _contexts)
|
||||||
}},
|
}},
|
||||||
web.SERVE_START: {Name: "serve.start", Help: "服务启动", Hand: func(m *ice.Message, arg ...string) {
|
web.SERVE_START: {Name: "serve.start", Help: "服务启动", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_publish_file(m, ice.ICE_BIN)
|
// _publish_file(m, ice.ICE_BIN)
|
||||||
}},
|
}},
|
||||||
ice.VOLCANOS: {Name: "volcanos", Help: "火山架", Hand: func(m *ice.Message, arg ...string) {
|
ice.VOLCANOS: {Name: "volcanos", Help: "火山架", Hand: func(m *ice.Message, arg ...string) {
|
||||||
defer func() { m.EchoQRCode(m.Option(ice.MSG_USERWEB)) }()
|
defer func() { m.EchoQRCode(m.Option(ice.MSG_USERWEB)) }()
|
||||||
defer func() { m.Cmdy(PUBLISH, ice.CONTEXTS) }()
|
defer func() { m.Cmdy(PUBLISH, ice.CONTEXTS, ice.MISC) }()
|
||||||
_publish_list(m, `.*\.(html|css|js)$`)
|
_publish_list(m, `.*\.(html|css|js)$`)
|
||||||
}},
|
}},
|
||||||
ice.ICEBERGS: {Name: "icebergs", Help: "冰山架", Hand: func(m *ice.Message, arg ...string) {
|
ice.ICEBERGS: {Name: "icebergs", Help: "冰山架", Hand: func(m *ice.Message, arg ...string) {
|
||||||
defer func() { m.Cmdy(PUBLISH, ice.CONTEXTS) }()
|
defer func() { m.Cmdy(PUBLISH, ice.CONTEXTS, ice.CORE) }()
|
||||||
_publish_bin_list(m, ice.USR_PUBLISH)
|
_publish_bin_list(m, ice.USR_PUBLISH)
|
||||||
}},
|
}},
|
||||||
ice.INTSHELL: {Name: "intshell", Help: "神农架", Hand: func(m *ice.Message, arg ...string) {
|
ice.INTSHELL: {Name: "intshell", Help: "神农架", Hand: func(m *ice.Message, arg ...string) {
|
||||||
defer func() { m.Cmdy(PUBLISH, ice.CONTEXTS) }()
|
defer func() { m.Cmdy(PUBLISH, ice.CONTEXTS, ice.BASE) }()
|
||||||
_publish_list(m, `.*\.(sh|vim|conf)$`)
|
_publish_list(m, `.*\.(sh|vim|conf)$`)
|
||||||
}},
|
}},
|
||||||
ice.CONTEXTS: {Name: "contexts", Help: "环境", Hand: func(m *ice.Message, arg ...string) {
|
ice.CONTEXTS: {Name: "contexts", Help: "环境", Hand: func(m *ice.Message, arg ...string) {
|
||||||
@ -93,11 +94,11 @@ func init() {
|
|||||||
if host == tcp.LOCALHOST {
|
if host == tcp.LOCALHOST {
|
||||||
host = m.Cmd(tcp.HOST).Append(aaa.IP)
|
host = m.Cmd(tcp.HOST).Append(aaa.IP)
|
||||||
}
|
}
|
||||||
m.Option("ctx_env", kit.Select("", " "+kit.JoinKV("=", " ", "ctx_pod", m.Option(ice.MSG_USERPOD)), m.Option(ice.MSG_USERPOD) != ""))
|
m.Option(cli.CTX_ENV, kit.Select("", " "+kit.JoinKV("=", " ", cli.CTX_POD, m.Option(ice.MSG_USERPOD)), m.Option(ice.MSG_USERPOD) != ""))
|
||||||
m.Option("httphost", fmt.Sprintf("%s://%s:%s", u.Scheme, host, kit.Select(kit.Select("443", "80", u.Scheme == ice.HTTP), strings.Split(u.Host, ice.DF), 1)))
|
m.Option("httphost", fmt.Sprintf("%s://%s:%s", u.Scheme, host, kit.Select(kit.Select("443", "80", u.Scheme == ice.HTTP), strings.Split(u.Host, ice.DF), 1)))
|
||||||
|
|
||||||
if len(arg) == 0 {
|
if len(arg) == 0 {
|
||||||
arg = append(arg, ice.MISC, ice.CORE, ice.BASE)
|
arg = append(arg, ice.MISC)
|
||||||
}
|
}
|
||||||
for _, k := range arg {
|
for _, k := range arg {
|
||||||
switch k {
|
switch k {
|
||||||
@ -109,7 +110,7 @@ func init() {
|
|||||||
m.Cmd(nfs.LINK, bin, m.Cmdx(cli.RUNTIME, "boot.bin"))
|
m.Cmd(nfs.LINK, bin, m.Cmdx(cli.RUNTIME, "boot.bin"))
|
||||||
}
|
}
|
||||||
|
|
||||||
case ice.CORE:
|
case ice.CORE, ice.BASE:
|
||||||
if !nfs.ExistsFile(m, ".git") {
|
if !nfs.ExistsFile(m, ".git") {
|
||||||
repos := web.MergeURL2(m, "/x/"+kit.Select(ice.Info.PathName, m.Option(ice.MSG_USERPOD)))
|
repos := web.MergeURL2(m, "/x/"+kit.Select(ice.Info.PathName, m.Option(ice.MSG_USERPOD)))
|
||||||
m.Cmd(cli.SYSTEM, "git", "init")
|
m.Cmd(cli.SYSTEM, "git", "init")
|
||||||
@ -118,7 +119,6 @@ func init() {
|
|||||||
}
|
}
|
||||||
m.Option("remote", kit.Select(ice.Info.Make.Remote, strings.TrimSpace(m.Cmdx(cli.SYSTEM, "git", "config", "remote.origin.url"))))
|
m.Option("remote", kit.Select(ice.Info.Make.Remote, strings.TrimSpace(m.Cmdx(cli.SYSTEM, "git", "config", "remote.origin.url"))))
|
||||||
m.Option("pathname", strings.TrimSuffix(path.Base(m.Option("remote")), ".git"))
|
m.Option("pathname", strings.TrimSuffix(path.Base(m.Option("remote")), ".git"))
|
||||||
case ice.BASE:
|
|
||||||
}
|
}
|
||||||
if buf, err := kit.Render(m.Config(kit.Keys(ice.CONTEXTS, k)), m); m.Assert(err) {
|
if buf, err := kit.Render(m.Config(kit.Keys(ice.CONTEXTS, k)), m); m.Assert(err) {
|
||||||
m.EchoScript(strings.TrimSpace(string(buf)))
|
m.EchoScript(strings.TrimSpace(string(buf)))
|
||||||
|
@ -7,10 +7,9 @@ import (
|
|||||||
"shylinux.com/x/icebergs/base/cli"
|
"shylinux.com/x/icebergs/base/cli"
|
||||||
"shylinux.com/x/icebergs/base/mdb"
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
"shylinux.com/x/icebergs/base/nfs"
|
"shylinux.com/x/icebergs/base/nfs"
|
||||||
kit "shylinux.com/x/toolkits"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func _py_main_script(m *ice.Message, arg ...string) {
|
func _py_exec(m *ice.Message, arg ...string) {
|
||||||
const PYTHON2 = "python2"
|
const PYTHON2 = "python2"
|
||||||
|
|
||||||
if _, e := nfs.DiskFile.StatFile(path.Join(arg[2], arg[1])); e == nil {
|
if _, e := nfs.DiskFile.StatFile(path.Join(arg[2], arg[1])); e == nil {
|
||||||
@ -19,64 +18,34 @@ func _py_main_script(m *ice.Message, arg ...string) {
|
|||||||
} else if b, e := nfs.ReadFile(m, path.Join(arg[2], arg[1])); e == nil {
|
} else if b, e := nfs.ReadFile(m, path.Join(arg[2], arg[1])); e == nil {
|
||||||
m.Cmdy(cli.SYSTEM, PYTHON2, "-c", string(b))
|
m.Cmdy(cli.SYSTEM, PYTHON2, "-c", string(b))
|
||||||
}
|
}
|
||||||
|
|
||||||
if m.StatusTime(); cli.IsSuccess(m) {
|
if m.StatusTime(); cli.IsSuccess(m) {
|
||||||
m.SetAppend()
|
m.SetAppend()
|
||||||
}
|
}
|
||||||
m.Echo(ice.NL)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const PY = nfs.PY
|
const PY = nfs.PY
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.Merge(&ice.Context{Commands: ice.Commands{
|
Index.MergeCommands(ice.Commands{
|
||||||
PY: {Name: "py path auto", Help: "脚本", Actions: ice.MergeActions(ice.Actions{
|
PY: {Name: "py path auto", Help: "脚本", Actions: ice.MergeActions(ice.Actions{
|
||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Go(func() {
|
m.Go(func() {
|
||||||
m.Sleep300ms() // after runtime init
|
m.Sleep300ms()
|
||||||
cli.IsAlpine(m, "python", "python2")
|
cli.IsAlpine(m, "python", "python2")
|
||||||
cli.IsAlpine(m, "python2")
|
cli.IsAlpine(m, "python2")
|
||||||
cli.IsAlpine(m, "python3")
|
cli.IsAlpine(m, "python3")
|
||||||
})
|
})
|
||||||
m.Cmd(mdb.ENGINE, mdb.CREATE, PY, m.PrefixKey())
|
|
||||||
m.Cmd(mdb.RENDER, mdb.CREATE, PY, m.PrefixKey())
|
|
||||||
m.Cmd(TEMPLATE, mdb.CREATE, m.CommandKey(), m.PrefixKey())
|
|
||||||
}},
|
|
||||||
TEMPLATE: {Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
if kit.Ext(m.Option(mdb.FILE)) != m.CommandKey() {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
m.Echo(`
|
|
||||||
print "hello world"
|
|
||||||
`)
|
|
||||||
}},
|
|
||||||
mdb.ENGINE: {Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
_py_main_script(m, arg...)
|
|
||||||
}},
|
}},
|
||||||
mdb.RENDER: {Hand: func(m *ice.Message, arg ...string) {
|
mdb.RENDER: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
_py_main_script(m, arg...)
|
// _py_exec(m, arg...)
|
||||||
}},
|
}},
|
||||||
}, PlugAction()), Hand: func(m *ice.Message, arg ...string) {
|
mdb.ENGINE: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
if len(arg) > 0 && kit.Ext(arg[0]) == PY {
|
_py_exec(m, arg...)
|
||||||
_py_main_script(m, PY, arg[0], ice.SRC)
|
}},
|
||||||
return
|
TEMPLATE: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
}
|
m.Echo(`print "hello world"`)
|
||||||
m.Option(nfs.DIR_DEEP, ice.TRUE)
|
}},
|
||||||
m.Option(nfs.DIR_ROOT, ice.SRC)
|
}, PlugAction(), LangAction())},
|
||||||
m.Option(nfs.DIR_REG, ".*.(py)$")
|
})
|
||||||
m.Cmdy(nfs.DIR, arg)
|
|
||||||
}},
|
|
||||||
}, Configs: ice.Configs{
|
|
||||||
PY: {Name: PY, Help: "脚本", Value: kit.Data(PLUG, kit.Dict(
|
|
||||||
SPLIT, kit.Dict(SPACE, " ", OPERATE, "{[(.,;!|<>)]}"),
|
|
||||||
PREFIX, kit.Dict("#!", COMMENT, "# ", COMMENT), SUFFIX, kit.Dict(" {", COMMENT),
|
|
||||||
PREPARE, kit.Dict(
|
|
||||||
KEYWORD, kit.Simple(
|
|
||||||
"import", "from", "return",
|
|
||||||
),
|
|
||||||
FUNCTION, kit.Simple(
|
|
||||||
"print",
|
|
||||||
),
|
|
||||||
), KEYWORD, kit.Dict(),
|
|
||||||
))},
|
|
||||||
}})
|
|
||||||
}
|
}
|
||||||
|
@ -1,87 +0,0 @@
|
|||||||
package code
|
|
||||||
|
|
||||||
import (
|
|
||||||
"path"
|
|
||||||
|
|
||||||
ice "shylinux.com/x/icebergs"
|
|
||||||
"shylinux.com/x/icebergs/base/cli"
|
|
||||||
"shylinux.com/x/icebergs/base/mdb"
|
|
||||||
"shylinux.com/x/icebergs/base/nfs"
|
|
||||||
kit "shylinux.com/x/toolkits"
|
|
||||||
)
|
|
||||||
|
|
||||||
// const TEMPLATE = "template"
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
return
|
|
||||||
Index.MergeCommands(ice.Commands{
|
|
||||||
TEMPLATE: {Name: "template name auto", Help: "模板", Actions: ice.MergeActions(ice.Actions{
|
|
||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
for _, _template := range _template_list {
|
|
||||||
m.Cmd(TEMPLATE, mdb.CREATE, kit.SimpleKV(kit.Format(_template[0]), _template[1:]...))
|
|
||||||
}
|
|
||||||
}},
|
|
||||||
mdb.CREATE: {Name: "create type name text args", Help: "创建"},
|
|
||||||
nfs.DEFS: {Name: "defs file=hi/hi.js", Help: "生成", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Option("tags", "`"+m.Option("tags")+"`")
|
|
||||||
if buf, err := kit.Render(m.Option(mdb.TEXT), m); !m.Warn(err) {
|
|
||||||
switch m.Cmd(nfs.DEFS, path.Join(m.Option(nfs.PATH), m.Option(nfs.FILE)), string(buf)); kit.Ext(m.Option(nfs.FILE)) {
|
|
||||||
case GO:
|
|
||||||
if m.Option(cli.MAIN) != "" && m.Option(mdb.ZONE) != "" {
|
|
||||||
_autogen_import(m, path.Join(m.Option(nfs.PATH), m.Option(cli.MAIN)), m.Option(mdb.ZONE), _autogen_mod(m, ice.GO_MOD))
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
m.Cmdy(nfs.DEFS, path.Join(m.Option(nfs.PATH), m.Option(nfs.FILE)), m.Option(mdb.TEXT))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}},
|
|
||||||
}, mdb.HashAction(mdb.SHORT, mdb.NAME, mdb.FIELD, "time,type,name,text,args")), Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
if mdb.HashSelect(m, arg...).Sort(mdb.NAME); len(arg) == 0 {
|
|
||||||
m.Cut("time,action,type,name,text,args")
|
|
||||||
m.Action(mdb.CREATE)
|
|
||||||
}
|
|
||||||
m.PushAction(nfs.DEFS, mdb.REMOVE)
|
|
||||||
}},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
var _template_list = [][]ice.Any{
|
|
||||||
[]ice.Any{"", "txt", "网站索引", `
|
|
||||||
hi
|
|
||||||
hi
|
|
||||||
cli.qrcode
|
|
||||||
cli.system
|
|
||||||
cli.runtime
|
|
||||||
|
|
||||||
`},
|
|
||||||
[]ice.Any{"", "js", "前端模块", `Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, cb, target) {
|
|
||||||
can.onmotion.clear(can)
|
|
||||||
can.onappend.table(can, msg)
|
|
||||||
can.onappend.board(can, msg)
|
|
||||||
}})`},
|
|
||||||
[]ice.Any{"", "go", "后端模块", `package {{.Option "zone"}}
|
|
||||||
|
|
||||||
import (
|
|
||||||
"shylinux.com/x/ice"
|
|
||||||
)
|
|
||||||
|
|
||||||
type {{.Option "name"}} struct {
|
|
||||||
ice.{{.Option "type"}}
|
|
||||||
|
|
||||||
list string {{.Option "tags"}}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h {{.Option "name"}}) List(m *ice.Message, arg ...string) {
|
|
||||||
h.{{.Option "type"}}.List(m, arg...)
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() { ice.Cmd("{{.Option "key"}}", {{.Option "name"}}{}) }
|
|
||||||
`, "args", `[
|
|
||||||
{"name": "zone", "value": "hi"},
|
|
||||||
{"name": "name", "value": "hi"},
|
|
||||||
{"name": "key", "value": "web.code.hi.hi"},
|
|
||||||
{"name": "type", "values": "Hash,Zone,List"},
|
|
||||||
{"name": "tags", "value": "name:\"list hash id auto insert\" help:\"数据\""},
|
|
||||||
{"name": "main", "value": "main.go"}
|
|
||||||
]`},
|
|
||||||
}
|
|
@ -62,6 +62,7 @@ func init() {
|
|||||||
m.Cmd(nfs.TRASH, arg[0])
|
m.Cmd(nfs.TRASH, arg[0])
|
||||||
}},
|
}},
|
||||||
nfs.SCRIPT: {Name: "script file=hi/hi.js", Help: "脚本", Hand: func(m *ice.Message, arg ...string) {
|
nfs.SCRIPT: {Name: "script file=hi/hi.js", Help: "脚本", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Option(nfs.PATH, "src/")
|
||||||
m.Cmdy(nfs.DEFS, path.Join(m.Option(nfs.PATH), m.Option(nfs.FILE)), m.Cmdx("", TEMPLATE))
|
m.Cmdy(nfs.DEFS, path.Join(m.Option(nfs.PATH), m.Option(nfs.FILE)), m.Cmdx("", TEMPLATE))
|
||||||
}},
|
}},
|
||||||
web.WEBSITE: {Name: "website file=hi.zml", Help: "网页", Hand: func(m *ice.Message, arg ...string) {
|
web.WEBSITE: {Name: "website file=hi.zml", Help: "网页", Hand: func(m *ice.Message, arg ...string) {
|
||||||
@ -109,7 +110,8 @@ func init() {
|
|||||||
web.ToastSuccess(m)
|
web.ToastSuccess(m)
|
||||||
m.ProcessInner()
|
m.ProcessInner()
|
||||||
}},
|
}},
|
||||||
AUTOGEN: {Name: "create name=hi help=示例 type=Zone,Hash,Data,Code main=main.go zone key", Help: "模块", Hand: func(m *ice.Message, arg ...string) {
|
AUTOGEN: {Name: "create name=h2 help=示例 type=Zone,Hash,Data,Code main=main.go zone key", Help: "模块", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Option(nfs.PATH, "src/")
|
||||||
m.Cmdy(AUTOGEN, mdb.CREATE, arg)
|
m.Cmdy(AUTOGEN, mdb.CREATE, arg)
|
||||||
}},
|
}},
|
||||||
COMPILE: {Name: "compile", Help: "编译", Hand: func(m *ice.Message, arg ...string) {
|
COMPILE: {Name: "compile", Help: "编译", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
@ -53,6 +53,7 @@ func _webpack_cache(m *ice.Message, dir string, write bool) {
|
|||||||
js, _, e := nfs.CreateFile(m, path.Join(dir, PAGE_CACHE_JS))
|
js, _, e := nfs.CreateFile(m, path.Join(dir, PAGE_CACHE_JS))
|
||||||
m.Assert(e)
|
m.Assert(e)
|
||||||
defer js.Close()
|
defer js.Close()
|
||||||
|
|
||||||
defer fmt.Fprintln(js, `_can_name = ""`)
|
defer fmt.Fprintln(js, `_can_name = ""`)
|
||||||
defer _webpack_can(m)
|
defer _webpack_can(m)
|
||||||
if !write {
|
if !write {
|
||||||
@ -71,6 +72,7 @@ func _webpack_cache(m *ice.Message, dir string, write bool) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
fmt.Fprintln(js)
|
fmt.Fprintln(js)
|
||||||
|
|
||||||
for _, k := range []string{LIB, PANEL, PLUGIN} {
|
for _, k := range []string{LIB, PANEL, PLUGIN} {
|
||||||
m.Cmd(nfs.DIR, k).Sort(nfs.PATH).Tables(func(value ice.Maps) {
|
m.Cmd(nfs.DIR, k).Sort(nfs.PATH).Tables(func(value ice.Maps) {
|
||||||
if kit.Ext(value[nfs.PATH]) == JS {
|
if kit.Ext(value[nfs.PATH]) == JS {
|
||||||
@ -141,8 +143,8 @@ const (
|
|||||||
const (
|
const (
|
||||||
PAGE_INDEX_CSS = "page/index.css"
|
PAGE_INDEX_CSS = "page/index.css"
|
||||||
PAGE_CACHE_CSS = "page/cache.css"
|
PAGE_CACHE_CSS = "page/cache.css"
|
||||||
PAGE_CACHE_JS = "page/cache.js"
|
|
||||||
PAGE_INDEX_JS = "page/index.js"
|
PAGE_INDEX_JS = "page/index.js"
|
||||||
|
PAGE_CACHE_JS = "page/cache.js"
|
||||||
PAGE_CAN_CSS = "page/can.css"
|
PAGE_CAN_CSS = "page/can.css"
|
||||||
PAGE_CAN_JS = "page/can.js"
|
PAGE_CAN_JS = "page/can.js"
|
||||||
)
|
)
|
||||||
@ -153,10 +155,10 @@ const WEBPACK = "webpack"
|
|||||||
func init() {
|
func init() {
|
||||||
Index.MergeCommands(ice.Commands{
|
Index.MergeCommands(ice.Commands{
|
||||||
WEBPACK: {Name: "webpack path auto create remove", Help: "打包", Actions: ice.MergeActions(ice.Actions{
|
WEBPACK: {Name: "webpack path auto create remove", Help: "打包", Actions: ice.MergeActions(ice.Actions{
|
||||||
mdb.CREATE: {Name: "create", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
mdb.CREATE: {Name: "create", Help: "发布", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_webpack_cache(m.Spawn(), _volcanos(m), true)
|
_webpack_cache(m.Spawn(), _volcanos(m), true)
|
||||||
}},
|
}},
|
||||||
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
mdb.REMOVE: {Name: "remove", Help: "调试", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_webpack_cache(m.Spawn(), _volcanos(m), false)
|
_webpack_cache(m.Spawn(), _volcanos(m), false)
|
||||||
}},
|
}},
|
||||||
mdb.INSERT: {Name: "insert path", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
mdb.INSERT: {Name: "insert path", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
@ -100,7 +100,7 @@ func init() {
|
|||||||
_xterm_get(m, kit.Select("", arg, 0)).Write(m.Cmdx(PUBLISH, ice.CONTEXTS, INSTALL) + ice.NL)
|
_xterm_get(m, kit.Select("", arg, 0)).Write(m.Cmdx(PUBLISH, ice.CONTEXTS, INSTALL) + ice.NL)
|
||||||
ctx.ProcessHold(m)
|
ctx.ProcessHold(m)
|
||||||
}},
|
}},
|
||||||
web.WEBSITE: {Name: "website", Help: "打开", Hand: func(m *ice.Message, arg ...string) {
|
web.WEBSITE: {Name: "website", Help: "网页", Hand: func(m *ice.Message, arg ...string) {
|
||||||
web.ProcessWebsite(m, "", "", m.OptionSimple(mdb.HASH))
|
web.ProcessWebsite(m, "", "", m.OptionSimple(mdb.HASH))
|
||||||
}},
|
}},
|
||||||
}, mdb.HashAction(mdb.FIELD, "time,hash,type,name,text,view", mdb.TOOLS, FAVOR), ctx.CmdAction(), ctx.ProcessAction()), Hand: func(m *ice.Message, arg ...string) {
|
}, mdb.HashAction(mdb.FIELD, "time,hash,type,name,text,view", mdb.TOOLS, FAVOR), ctx.CmdAction(), ctx.ProcessAction()), Hand: func(m *ice.Message, arg ...string) {
|
||||||
@ -108,7 +108,7 @@ func init() {
|
|||||||
m.PushAction(web.WEBSITE, mdb.REMOVE)
|
m.PushAction(web.WEBSITE, mdb.REMOVE)
|
||||||
m.Action(mdb.CREATE, mdb.PRUNES)
|
m.Action(mdb.CREATE, mdb.PRUNES)
|
||||||
} else {
|
} else {
|
||||||
m.Action("波浪线", "反引号", "refresh", "full", INSTALL)
|
m.Action(INSTALL, "波浪线", "反引号")
|
||||||
ctx.DisplayLocal(m, "")
|
ctx.DisplayLocal(m, "")
|
||||||
ctx.Toolkit(m)
|
ctx.Toolkit(m)
|
||||||
}
|
}
|
||||||
|
@ -23,16 +23,9 @@ func init() {
|
|||||||
const (
|
const (
|
||||||
SRC_WEBSITE = "src/website/"
|
SRC_WEBSITE = "src/website/"
|
||||||
)
|
)
|
||||||
Index.Register(&ice.Context{Name: ZML, Help: "网页", Commands: ice.Commands{
|
Index.MergeCommands(ice.Commands{
|
||||||
ZML: {Name: "zml", Help: "网页", Actions: ice.MergeActions(ice.Actions{
|
ZML: {Name: "zml", Help: "网页", Actions: ice.MergeActions(ice.Actions{
|
||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) {}},
|
||||||
m.Cmd(mdb.RENDER, mdb.CREATE, nfs.ZML, m.PrefixKey())
|
|
||||||
m.Cmd(mdb.ENGINE, mdb.CREATE, nfs.ZML, m.PrefixKey())
|
|
||||||
m.Cmd(TEMPLATE, mdb.CREATE, m.CommandKey(), m.PrefixKey())
|
|
||||||
m.Cmd(COMPLETE, mdb.CREATE, m.CommandKey(), m.PrefixKey())
|
|
||||||
}},
|
|
||||||
mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
}},
|
|
||||||
TEMPLATE: {Hand: func(m *ice.Message, arg ...string) {
|
TEMPLATE: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
switch kit.Ext(m.Option(mdb.FILE)) {
|
switch kit.Ext(m.Option(mdb.FILE)) {
|
||||||
case ZML:
|
case ZML:
|
||||||
@ -76,7 +69,7 @@ func init() {
|
|||||||
if len(arg) > 0 && arg[0] == mdb.FOREACH {
|
if len(arg) > 0 && arg[0] == mdb.FOREACH {
|
||||||
switch m.Option(ctx.ACTION) {
|
switch m.Option(ctx.ACTION) {
|
||||||
case web.WEBSITE:
|
case web.WEBSITE:
|
||||||
m.Cmdy(nfs.DIR, nfs.PWD, kit.Dict(nfs.DIR_ROOT, "src/website/"), nfs.PATH)
|
m.Cmdy(nfs.DIR, nfs.PWD, kit.Dict(nfs.DIR_ROOT, SRC_WEBSITE), nfs.PATH)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -113,6 +106,6 @@ func init() {
|
|||||||
mdb.ENGINE: {Hand: func(m *ice.Message, arg ...string) {
|
mdb.ENGINE: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Echo(_website_url(m, strings.TrimPrefix(path.Join(arg[2], arg[1]), SRC_WEBSITE)))
|
m.Echo(_website_url(m, strings.TrimPrefix(path.Join(arg[2], arg[1]), SRC_WEBSITE)))
|
||||||
}},
|
}},
|
||||||
})},
|
}, PlugAction(), LangAction())},
|
||||||
}}, nil)
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user