1
0
mirror of https://shylinux.com/x/icebergs synced 2025-04-26 09:34:05 +08:00
This commit is contained in:
IT 老营长 @云轩领航-创始人 2023-04-18 07:32:32 +08:00
parent bb5fb5a908
commit 96e501d949
6 changed files with 26 additions and 31 deletions

View File

@ -190,7 +190,7 @@ func (m *Message) FormatsMeta(w io.Writer, arg ...string) (res string) {
count++ count++
} }
echo("{", NL) echo("{", NL)
defer echo("}", NL) defer echo(NL, "}", NL)
kit.For(kit.Simple(MSG_DETAIL, MSG_OPTION, m.meta[MSG_OPTION], m.meta[MSG_APPEND], MSG_APPEND, MSG_RESULT), push) kit.For(kit.Simple(MSG_DETAIL, MSG_OPTION, m.meta[MSG_OPTION], m.meta[MSG_APPEND], MSG_APPEND, MSG_RESULT), push)
return return
} }

View File

@ -442,7 +442,7 @@ func init() {
code.VIMER: {Hand: func(m *ice.Message, arg ...string) { _repos_vimer(m, _repos_path, arg...) }}, code.VIMER: {Hand: func(m *ice.Message, arg ...string) { _repos_vimer(m, _repos_path, arg...) }},
}, mdb.HashAction(mdb.SHORT, REPOS, mdb.FIELD, "time,repos,branch,commit,origin"), mdb.ClearOnExitHashAction()), Hand: func(m *ice.Message, arg ...string) { }, mdb.HashAction(mdb.SHORT, REPOS, mdb.FIELD, "time,repos,branch,commit,origin"), mdb.ClearOnExitHashAction()), Hand: func(m *ice.Message, arg ...string) {
if len(arg) == 0 { if len(arg) == 0 {
mdb.HashSelect(m, arg...).Sort(REPOS).Action(CLONE, PULL, PUSH) mdb.HashSelect(m, arg...).Sort(REPOS).Action(CLONE, PULL, PUSH, STATUS)
} else if len(arg) == 1 { } else if len(arg) == 1 {
_repos_branch(m, _repos_open(m, arg[0])) _repos_branch(m, _repos_open(m, arg[0]))
} else if len(arg) == 2 { } else if len(arg) == 2 {

View File

@ -143,7 +143,6 @@ func init() {
if len(arg) == 0 { if len(arg) == 0 {
mdb.HashSelect(m, arg...).Sort(REPOS).Action(mdb.CREATE, TOKEN) mdb.HashSelect(m, arg...).Sort(REPOS).Action(mdb.CREATE, TOKEN)
m.Echo(strings.ReplaceAll(m.Cmdx("web.code.publish", ice.CONTEXTS), "app username", "dev username")) m.Echo(strings.ReplaceAll(m.Cmdx("web.code.publish", ice.CONTEXTS), "app username", "dev username"))
m.Echo(m.Cmdx(TOKEN, m.Option(ice.MSG_USERNAME)))
} else if len(arg) == 1 { } else if len(arg) == 1 {
repos := _repos_open(m, arg[0]) repos := _repos_open(m, arg[0])
if branch, err := repos.Branch(arg[1]); !m.Warn(err) { if branch, err := repos.Branch(arg[1]); !m.Warn(err) {

View File

@ -109,9 +109,7 @@ func init() {
case nfs.FROM: 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, ice.PS))
case nfs.TO: case nfs.TO:
m.Cmd(web.BROAD, func(value ice.Maps) { m.Cmd(web.BROAD, func(value ice.Maps) { m.Push(arg[0], kit.Format("http://%s:%s/", value[tcp.HOST], value[tcp.PORT])) })
m.Push(arg[0], kit.Format("http://%s:%s/", value[tcp.HOST], value[tcp.PORT]))
})
} }
return return
} }
@ -140,10 +138,13 @@ func init() {
kit.If(m.Option(nfs.TO), func() { _git_cmd(m, CONFIG, "--global", "url."+m.Option(nfs.TO)+".insteadof", m.Option(nfs.FROM)) }) kit.If(m.Option(nfs.TO), func() { _git_cmd(m, CONFIG, "--global", "url."+m.Option(nfs.TO)+".insteadof", m.Option(nfs.FROM)) })
}}, }},
OAUTH: {Help: "授权", Hand: func(m *ice.Message, arg ...string) { OAUTH: {Help: "授权", Hand: func(m *ice.Message, arg ...string) {
m.ProcessOpen(kit.MergeURL2(kit.Select(ice.Info.Make.Remote, _git_remote(m)), "/chat/cmd/web.code.git.token", aaa.USERNAME, m.Option(ice.MSG_USERNAME), tcp.HOST, web.UserHost(m))) m.ProcessOpen(kit.MergeURL2(kit.Select(ice.Info.Make.Remote, _git_remote(m)), "/chat/cmd/web.code.git.token/gen/", tcp.HOST, web.UserHost(m)))
}},
TAG: {Name: "tag version", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(REPOS, m.ActionKey(), arg)
}}, }},
COMMIT: {Name: "commit actions=add,opt,fix comment*=some", Hand: func(m *ice.Message, arg ...string) { COMMIT: {Name: "commit actions=add,opt,fix comment*=some", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(REPOS, COMMIT, arg) m.Cmdy(REPOS, m.ActionKey(), arg)
}}, }},
web.DREAM_TABLES: {Hand: func(m *ice.Message, arg ...string) { web.DREAM_TABLES: {Hand: func(m *ice.Message, arg ...string) {
if m.Option(mdb.TYPE) != web.WORKER { if m.Option(mdb.TYPE) != web.WORKER {
@ -164,9 +165,7 @@ func init() {
}, gdb.EventAction(web.DREAM_TABLES), aaa.RoleAction()), Hand: func(m *ice.Message, arg ...string) { }, gdb.EventAction(web.DREAM_TABLES), aaa.RoleAction()), Hand: func(m *ice.Message, arg ...string) {
if len(arg) > 0 && arg[0] == ctx.ACTION { if len(arg) > 0 && arg[0] == ctx.ACTION {
m.Cmdy(REPOS, arg) m.Cmdy(REPOS, arg)
return } else if _configs_get(m, USER_EMAIL) == "" {
}
if _configs_get(m, USER_EMAIL) == "" {
m.Echo("please config user.email").Action(CONFIGS) m.Echo("please config user.email").Action(CONFIGS)
} else if len(arg) == 0 { } else if len(arg) == 0 {
files, adds, dels, last := _status_list(m) files, adds, dels, last := _status_list(m)

View File

@ -17,26 +17,32 @@ const TOKEN = "token"
func init() { func init() {
const ( const (
SET = "set" GEN = "gen"
GET = "get" SET = "set"
SID = "sid" GET = "get"
SID = "sid"
FILE = ".git-credentials"
LOCAL = "http://localhost:9020"
) )
const LOCAL = "http://localhost:9020" create := func(m *ice.Message) string {
const FILE = ".git-credentials" msg := m.Cmd(Prefix(TOKEN), m.Cmdx(Prefix(TOKEN), mdb.CREATE, aaa.USERNAME, m.Option(ice.MSG_USERNAME), TOKEN, kit.Hashs(mdb.UNIQ)))
return strings.Replace(web.UserHost(m), "://", kit.Format("://%s:%s@", m.Option(ice.MSG_USERNAME), msg.Append(TOKEN)), 1)
}
Index.MergeCommands(ice.Commands{ Index.MergeCommands(ice.Commands{
TOKEN: {Name: "token username auto prunes", Actions: ice.MergeActions(ice.Actions{ TOKEN: {Name: "token username auto prunes", Actions: ice.MergeActions(ice.Actions{
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { aaa.White(m, kit.Keys(TOKEN, SID)) }}, ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { aaa.White(m, kit.Keys(TOKEN, SID)) }},
cli.MAKE: {Hand: func(m *ice.Message, arg ...string) { cli.MAKE: {Hand: func(m *ice.Message, arg ...string) {
msg := m.Cmd("", m.Cmdx("", mdb.CREATE, aaa.USERNAME, m.Option(ice.MSG_USERNAME), TOKEN, kit.Hashs(mdb.UNIQ))) m.ProcessReplace(kit.MergeURL2(LOCAL, m.PrefixPath(SET), TOKEN, create(m)))
m.ProcessOpen(kit.MergeURL(LOCAL+m.PrefixPath(SET), TOKEN, msg.Append("url"))) }},
web.PP(GEN): {Hand: func(m *ice.Message, arg ...string) {
m.ProcessReplace(kit.MergeURL2(m.Option(tcp.HOST), m.PrefixPath(SET), TOKEN, create(m)))
}}, }},
web.PP(SET): {Hand: func(m *ice.Message, arg ...string) { web.PP(SET): {Hand: func(m *ice.Message, arg ...string) {
defer web.RenderTemplate(m, "close.html") defer web.RenderTemplate(m, "close.html")
host, list := ice.Map{kit.ParseURL(m.Option(TOKEN)).Host: true}, []string{m.Option(TOKEN)} 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) { m.Cmd(nfs.CAT, kit.HomePath(FILE), func(line string) {
kit.IfNoKey(host, kit.ParseURL(line).Host, func(p string) { list = append(list, line) }) 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)
m.Cmd(nfs.SAVE, kit.HomePath(FILE), strings.Join(list, ice.NL)+ice.NL)
}}, }},
web.PP(GET): {Hand: func(m *ice.Message, arg ...string) { web.PP(GET): {Hand: func(m *ice.Message, arg ...string) {
web.RenderOrigin(m.W, "*") web.RenderOrigin(m.W, "*")
@ -54,16 +60,6 @@ func init() {
web.RenderCookie(m.Echo(ice.OK), aaa.SessCreate(m, arg[0])) web.RenderCookie(m.Echo(ice.OK), aaa.SessCreate(m, arg[0]))
} }
}}, }},
}, mdb.HashAction(mdb.EXPIRE, mdb.MONTH, mdb.SHORT, aaa.USERNAME, mdb.FIELD, "time,username,token")), Hand: func(m *ice.Message, arg ...string) { }, mdb.HashAction(mdb.EXPIRE, mdb.MONTH, mdb.SHORT, aaa.USERNAME, mdb.FIELD, "time,username,token"))},
if mdb.HashSelect(m, arg...); len(arg) > 0 && m.Length() > 0 {
p := strings.Replace(web.UserHost(m), "://", kit.Format("://%s:%s@", m.Option(ice.MSG_USERNAME), m.Append(TOKEN)), 1)
m.OptionDefault(tcp.HOST, LOCAL)
if m.Push("url", p).EchoScript(p).EchoScript(nfs.Template(m, "echo.sh", p)); m.Option(ice.CMD) == m.PrefixKey() {
m.ProcessReplace(kit.MergeURL2(m.Option(tcp.HOST), m.PrefixPath(SET), TOKEN, p))
} else {
m.EchoAnchor(kit.MergeURL2(m.Option(tcp.HOST), m.PrefixPath(SET), TOKEN, p))
}
}
}},
}) })
} }

View File

@ -57,6 +57,7 @@ func (m *Message) FieldsIsDetail() bool {
return len(m.meta[MSG_APPEND]) == 2 && m.meta[MSG_APPEND][0] == KEY && m.meta[MSG_APPEND][1] == VALUE || m.OptionFields() == FIELDS_DETAIL return len(m.meta[MSG_APPEND]) == 2 && m.meta[MSG_APPEND][0] == KEY && m.meta[MSG_APPEND][1] == VALUE || m.OptionFields() == FIELDS_DETAIL
} }
func (m *Message) Fields(length int, fields ...string) string { func (m *Message) Fields(length int, fields ...string) string {
kit.If(length >= len(fields), func() { m.Option(MSG_FIELDS, FIELDS_DETAIL) })
return m.OptionDefault(MSG_FIELDS, kit.Select(FIELDS_DETAIL, fields, length)) return m.OptionDefault(MSG_FIELDS, kit.Select(FIELDS_DETAIL, fields, length))
} }
func (m *Message) Action(arg ...Any) *Message { func (m *Message) Action(arg ...Any) *Message {