1
0
forked from x/icebergs
This commit is contained in:
IT 老营长 @云轩领航-创始人 2023-12-31 10:32:56 +08:00
parent 6bb29fed18
commit 8b184981b6
5 changed files with 59 additions and 53 deletions

View File

@ -205,7 +205,7 @@ const (
BODY = "body"
HOME = "home"
OPS_SERVER_START = "ops.server.start"
OPS_SERVER_OPEN = "ops.server.open"
SERVE_START = "serve.start"
)
const SERVE = "serve"

View File

@ -102,18 +102,12 @@ func _space_fork(m *ice.Message) {
case WORKER:
defer gdb.EventDeferEvent(m, DREAM_OPEN, args)(DREAM_CLOSE, args)
case SERVER:
defer gdb.EventDeferEvent(m, SPACE_OPEN, args)(SPACE_CLOSE, args)
m.Go(func() {
m.Cmd(SPACE, name, cli.PWD, name, kit.Dict(nfs.MODULE, ice.Info.Make.Module, nfs.VERSION, ice.Info.Make.Versions(), AGENT, "Go-http-client", cli.SYSTEM, runtime.GOOS))
m.Cmd(SPACE).Table(func(value ice.Maps) {
if kit.IsIn(value[mdb.TYPE], WORKER, SERVER) {
m.Cmd(SPACE, value[mdb.NAME], gdb.EVENT, gdb.HAPPEN, gdb.EVENT, OPS_SERVER_START, args, kit.Dict(ice.MSG_USERROLE, aaa.TECH))
}
})
m.Cmd(DREAM).Table(func(value ice.Maps) {
if value["restart"] == "always" {
value[nfs.BINARY] = UserHost(m) + S(value[mdb.NAME])
value[mdb.ICON] = strings.TrimPrefix(kit.Split(value[mdb.ICON], "?")[0], "/require/")
m.Cmd(SPACE, name, DREAM, mdb.CREATE, mdb.NAME, value[mdb.NAME], value)
m.Cmd(SPACE, value[mdb.NAME], gdb.EVENT, gdb.HAPPEN, gdb.EVENT, OPS_SERVER_OPEN, args, kit.Dict(ice.MSG_USERROLE, aaa.TECH))
}
})
})
@ -234,6 +228,8 @@ const (
SPACE_LOGIN = "space.login"
SPACE_LOGIN_CLOSE = "space.login.close"
SPACE_GRANT = "space.grant"
SPACE_OPEN = "space.open"
SPACE_CLOSE = "space.close"
)
const SPACE = "space"

View File

@ -144,7 +144,7 @@ func MergeActions(arg ...Any) Actions {
h.Hand = MergeHand(v.Hand, h.Hand)
} else if k == CTX_EXIT {
h.Hand = MergeHand(h.Hand, v.Hand)
} else if h.Name, h.Help = kit.Select(v.Name, h.Name), kit.Select(v.Help, h.Help); h.Hand == nil {
} else if h.Name, h.Help, h.Icon = kit.Select(v.Name, h.Name), kit.Select(v.Help, h.Help), kit.Select(v.Icon, h.Icon); h.Hand == nil {
h.Hand = v.Hand
}
}
@ -166,12 +166,12 @@ func MergeActions(arg ...Any) Actions {
} else if h.Hand == nil {
h.Hand = func(m *Message, arg ...string) { m.Cmdy(from, k, arg) }
}
kit.Value(_cmd.Meta, kit.Keys(CTX_ICONS, k), v.Icon)
if help := kit.Split(v.Help, " :"); len(help) > 0 {
if kit.Value(_cmd.Meta, kit.Keys(CTX_TRANS, strings.TrimPrefix(k, "_")), help[0]); len(help) > 1 {
kit.Value(_cmd.Meta, kit.Keys(CTX_TITLE, k), help[1])
}
}
kit.Value(_cmd.Meta, kit.Keys(CTX_ICONS, k), kit.Select(v.Icon, h.Icon))
kit.If(len(v.List) > 0, func() { _cmd.Meta[k] = v.List })
}(k)
}

View File

@ -436,6 +436,14 @@ func init() {
}
})
}},
INIT: {Name: "init origin*", Help: "初始化", Hand: func(m *ice.Message, arg ...string) {
m.OptionDefault(nfs.PATH, kit.Path(""))
m.Cmd(nfs.DEFS, path.Join(m.Option(nfs.PATH), ".git/config"), kit.Format(nfs.Template(m, CONFIG), m.Option(ORIGIN)))
m.Cmd(nfs.DEFS, path.Join(m.Option(nfs.PATH), _GITIGNORE), nfs.Template(m, IGNORE))
git.PlainInit(m.Option(nfs.PATH), false)
_repos_insert(m, m.Option(nfs.PATH))
m.ProcessRefresh()
}},
INSTEADOF: {Name: "insteadof remote", Help: "代理", Icon: "bi bi-clouds", Hand: func(m *ice.Message, arg ...string) {
m.Cmd(CONFIGS, func(value ice.Maps) {
if strings.HasSuffix(value[mdb.NAME], _INSTEADOF) && strings.HasPrefix(ice.Info.Make.Remote, value[mdb.VALUE]) {
@ -446,14 +454,6 @@ func init() {
_git_cmd(m, CONFIG, GLOBAL, "url."+m.Option(REMOTE)+_INSTEADOF, strings.TrimSuffix(ice.Info.Make.Remote, path.Base(ice.Info.Make.Remote)))
}
}},
INIT: {Name: "init origin* path", Hand: func(m *ice.Message, arg ...string) {
m.OptionDefault(nfs.PATH, kit.Path(""))
m.Cmd(nfs.DEFS, path.Join(m.Option(nfs.PATH), ".git/config"), kit.Format(nfs.Template(m, CONFIG), m.Option(ORIGIN)))
m.Cmd(nfs.DEFS, path.Join(m.Option(nfs.PATH), _GITIGNORE), nfs.Template(m, IGNORE))
git.PlainInit(m.Option(nfs.PATH), false)
_repos_insert(m, m.Option(nfs.PATH))
m.ProcessRefresh()
}},
REMOTE: {Hand: func(m *ice.Message, arg ...string) {
repos := _repos_open(m, kit.Select(path.Base(kit.Path("")), kit.Select(m.Option(REPOS), arg, 0)))
if _remote, err := repos.Remote(ORIGIN); err == nil {
@ -474,10 +474,18 @@ func init() {
}
}
}},
REMOTE_URL: {Hand: func(m *ice.Message, arg ...string) {
REMOTE_URL: {Name: "remoteURL", Hand: func(m *ice.Message, arg ...string) {
m.Echo(_repos_remote(m, _repos_origin(m, _repos_open(m, path.Base(kit.Path(""))))))
}},
mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) {
switch m.Option(ctx.ACTION) {
case INIT:
m.Cmd(web.SPIDE, ice.OptionFields(web.CLIENT_ORIGIN), func(value ice.Maps) { m.Push(arg[0], value[web.CLIENT_ORIGIN]+web.X(path.Base(kit.Path("")))) })
m.Push(arg[0], kit.MergeURL2(web.UserHost(m), web.X(path.Base(kit.Path("")))))
case INSTEADOF, OAUTH:
m.Cmd(web.SPIDE, ice.OptionFields(web.CLIENT_ORIGIN), func(value ice.Maps) { m.Push(arg[0], value[web.CLIENT_ORIGIN]+web.X()) })
m.Push(arg[0], kit.MergeURL2(web.UserHost(m), web.X()))
default:
switch arg[0] {
case MESSAGE:
ls := kit.Split(m.Option(nfs.FILE), " /")
@ -488,6 +496,7 @@ func init() {
case VERSION:
m.Push(arg[0], _repos_tag(m, m.Option(TAGS)))
}
}
}},
mdb.REMOVE: {Hand: func(m *ice.Message, arg ...string) {
if !m.Warn(m.Option(REPOS), ice.ErrNotValid, REPOS) {
@ -495,9 +504,9 @@ func init() {
mdb.HashRemove(m, m.Option(REPOS))
}
}},
CLONE: {Name: "clone origin* branch name path", Help: "克隆", Icon: "bi bi-copy", Hand: func(m *ice.Message, arg ...string) {
CLONE: {Name: "clone origin* name", Help: "克隆", Icon: "bi bi-copy", Hand: func(m *ice.Message, arg ...string) {
m.OptionDefault(mdb.NAME, path.Base(m.Option(ORIGIN)))
m.OptionDefault(nfs.PATH, path.Join(nfs.USR, m.Option(mdb.NAME))+nfs.PS)
m.Option(nfs.PATH, path.Join(nfs.USR, m.Option(mdb.NAME))+nfs.PS)
defer m.Cmdy(nfs.DIR, m.Option(nfs.PATH))
if nfs.Exists(m, path.Join(m.Option(nfs.PATH), _GIT)) {
return
@ -608,6 +617,18 @@ func init() {
web.DREAM_TRASH: {Hand: func(m *ice.Message, arg ...string) {
m.Cmd("", mdb.REMOVE, kit.Dict(REPOS, m.Option(mdb.NAME)))
}},
web.SPACE_OPEN: {Hand: func(m *ice.Message, arg ...string) {
if m.Option(mdb.TYPE) == web.SERVER {
m.Cmd(web.DREAM).Table(func(value ice.Maps) {
if value[cli.RESTART] == "always" {
value[nfs.BINARY] = web.UserHost(m) + web.S(value[mdb.NAME])
value[mdb.ICON] = strings.TrimPrefix(kit.Split(value[mdb.ICON], "?")[0], "/require/")
value[nfs.REPOS] = _repos_remote(m, _repos_origin(m, _repos_open(m, path.Join(ice.USR_LOCAL_WORK, value[mdb.NAME]))))
m.Cmd(web.SPACE, m.Option(mdb.NAME), web.DREAM, mdb.CREATE, mdb.NAME, value[mdb.NAME], value)
}
})
}
}},
web.SERVE_START: {Hand: func(m *ice.Message, arg ...string) {
m.Cmd("", CLONE, ORIGIN, "node_modules", mdb.NAME, "", nfs.PATH, "")
m.Cmd("", CLONE, ORIGIN, "icons", mdb.NAME, "", nfs.PATH, "")

View File

@ -33,35 +33,24 @@ func init() {
ice.CTX_TRANS, kit.Dict(html.INPUT, kit.Dict("actions", "操作", "message", "信息")),
), Actions: ice.MergeActions(ice.Actions{
mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) {
switch m.Option(ctx.ACTION) {
case INIT:
m.Cmd(web.SPIDE, ice.OptionFields(web.CLIENT_ORIGIN), func(value ice.Maps) { m.Push(arg[0], value[web.CLIENT_ORIGIN]+web.X(path.Base(kit.Path("")))) })
m.Push(arg[0], kit.MergeURL2(web.UserHost(m), web.X(path.Base(kit.Path("")))))
case INSTEADOF, OAUTH:
m.Cmd(web.SPIDE, ice.OptionFields(web.CLIENT_ORIGIN), func(value ice.Maps) { m.Push(arg[0], value[web.CLIENT_ORIGIN]+web.X()) })
m.Push(arg[0], kit.MergeURL2(web.UserHost(m), web.X()))
default:
switch arg[0] {
case aaa.USERNAME:
m.Push(arg[0], kit.Select(m.Option(ice.MSG_USERNAME), _configs_get(m, USER_NAME)), ice.Info.Make.Username)
case aaa.EMAIL:
m.Push(arg[0], _configs_get(m, USER_EMAIL), ice.Info.Make.Email)
case aaa.USERNAME:
m.Push(arg[0], kit.Select(m.Option(ice.MSG_USERNAME), _configs_get(m, USER_NAME)), ice.Info.Make.Username)
default:
m.Cmdy(REPOS, mdb.INPUTS, arg)
}
}
}},
INIT: {Name: "init origin*", Help: "初始化", Hand: func(m *ice.Message, arg ...string) { m.Cmdy(REPOS, INIT) }},
OAUTH: {Name: "oauth remote", Help: "授权", Icon: "bi bi-person-check", Hand: func(m *ice.Message, arg ...string) {
m.ProcessOpen(kit.MergeURL2(kit.Select(ice.Info.Make.Domain, m.Cmdx(REPOS, REMOTE_URL), m.Option(REMOTE)), web.ChatCmdPath(m, web.TOKEN, "gen"),
mdb.TYPE, web.CODE_GIT_STATUS, tcp.HOST, m.Option(ice.MSG_USERWEB)))
}},
CONFIGS: {Name: "configs email* username*", Help: "配置", Hand: func(m *ice.Message, arg ...string) {
m.Cmd(nfs.DEFS, kit.HomePath(_GITCONFIG), kit.Format(nfs.Template(m, "gitconfig"), m.Option(aaa.USERNAME), m.Option(aaa.EMAIL)))
mdb.Config(m, aaa.USERNAME, m.Option(aaa.USERNAME))
mdb.Config(m, aaa.EMAIL, m.Option(aaa.EMAIL))
}},
INSTEADOF: {Name: "insteadof remote", Help: "代理", Icon: "bi bi-clouds", Hand: func(m *ice.Message, arg ...string) { m.Cmdy(REPOS, INSTEADOF, arg) }},
OAUTH: {Name: "oauth remote", Help: "授权", Icon: "bi bi-person-check", Hand: func(m *ice.Message, arg ...string) {
m.ProcessOpen(kit.MergeURL2(kit.Select(ice.Info.Make.Domain, m.Cmdx(REPOS, REMOTE_URL), m.Option(REMOTE)), web.ChatCmdPath(m, web.TOKEN, "gen"),
mdb.TYPE, web.CODE_GIT_STATUS, tcp.HOST, m.Option(ice.MSG_USERWEB)))
}},
web.DREAM_TABLES: {Hand: func(m *ice.Message, arg ...string) {
if !nfs.Exists(m, path.Join(ice.USR_LOCAL_WORK, m.Option(mdb.NAME), _GIT)) {
m.Push(mdb.TEXT, "")