forked from x/icebergs
add email
This commit is contained in:
parent
a3b915b34a
commit
c9a8bbbcf4
@ -24,7 +24,11 @@ func init() {
|
||||
DF = ": "
|
||||
)
|
||||
Index.MergeCommands(ice.Commands{
|
||||
EMAIL: {Name: "email name auto create", Help: "邮件", Actions: ice.MergeActions(ice.Actions{
|
||||
EMAIL: {Name: "email name auto create website", Help: "邮件", Actions: ice.MergeActions(ice.Actions{
|
||||
"website": {Help: "邮箱", Hand: func(m *ice.Message, arg ...string) {
|
||||
// m.ProcessOpen(m.Cmdv("web.spide", EMAIL, "client.url"))
|
||||
m.EchoIFrame(m.Cmdv("web.spide", EMAIL, "client.url")).ProcessInner()
|
||||
}},
|
||||
SEND: {Name: "send to*='shylinux@163.com' subject*=hi content*:textarea=hello", Help: "发送", Hand: func(m *ice.Message, arg ...string) {
|
||||
msg := m.Cmd("", m.OptionDefault(mdb.NAME, ADMIN))
|
||||
if m.Warn(msg.Append(SERVICE) == "", ice.ErrNotValid, SERVICE) {
|
||||
|
@ -126,6 +126,7 @@ const (
|
||||
const (
|
||||
CTX_SHY = "ctx_shy"
|
||||
CTX_COM = "ctx_com"
|
||||
CTX_HUB = "ctx_hub"
|
||||
CTX_DEV = "ctx_dev"
|
||||
CTX_OPS = "ctx_ops"
|
||||
CTX_ARG = "ctx_arg"
|
||||
@ -137,7 +138,7 @@ const (
|
||||
CTX_DAEMON = "ctx_daemon"
|
||||
)
|
||||
|
||||
var ENV_LIST = []string{TZ, LANG, TERM, SHELL, CTX_SHY, CTX_COM, CTX_DEV, CTX_OPS, CTX_ARG, CTX_PID, CTX_DAEMON}
|
||||
var ENV_LIST = []string{TZ, LANG, TERM, SHELL, CTX_SHY, CTX_HUB, CTX_COM, CTX_DEV, CTX_OPS, CTX_ARG, CTX_PID, CTX_DAEMON}
|
||||
|
||||
const (
|
||||
HOSTNAME = "hostname"
|
||||
|
@ -105,9 +105,11 @@ func CmdInputs(m *ice.Message, arg ...string) {
|
||||
case INDEX:
|
||||
m.Cmdy(COMMAND, mdb.SEARCH, COMMAND, ice.OptionFields(INDEX))
|
||||
case ARGS:
|
||||
if m.Cmdy(m.Option(INDEX), mdb.INPUTS, arg); m.Length() == 0 {
|
||||
m.Cmdy(m.Option(INDEX))
|
||||
}
|
||||
}
|
||||
}
|
||||
func PodCmd(m *ice.Message, arg ...ice.Any) bool {
|
||||
Upload(m)
|
||||
if pod := m.Option(ice.POD); pod != "" {
|
||||
|
@ -177,9 +177,15 @@ func HashKey(m *ice.Message) string {
|
||||
return HashShort(m)
|
||||
}
|
||||
func HashShort(m *ice.Message) string {
|
||||
if m.Option(SHORT) != "" {
|
||||
return m.Option(SHORT)
|
||||
}
|
||||
return kit.Select(HASH, Config(m, SHORT), Config(m, SHORT) != UNIQ)
|
||||
}
|
||||
func HashField(m *ice.Message) string {
|
||||
if m.Option(FIELD) != "" {
|
||||
return m.Option(FIELD)
|
||||
}
|
||||
return kit.Select(HASH_FIELD, Config(m, FIELD))
|
||||
// return kit.Select(HASH_FIELD, Config(m, FIELD), Config(m, FIELDS))
|
||||
}
|
||||
@ -210,7 +216,7 @@ func HashSelect(m *ice.Message, arg ...string) *ice.Message {
|
||||
} else {
|
||||
m.Fields(len(kit.Slice(arg, 0, 1)), HashField(m))
|
||||
}
|
||||
m.Cmdy(SELECT, m.PrefixKey(), "", HASH, HashShort(m), arg, logs.FileLineMeta(-1))
|
||||
m.Cmdy(SELECT, m.PrefixKey(), m.Option(SUBKEY), HASH, HashShort(m), arg, logs.FileLineMeta(-1))
|
||||
kit.If(Config(m, SORT), func(sort string) { m.Sort(sort) })
|
||||
if m.PushAction(Config(m, ACTION), REMOVE); !m.FieldsIsDetail() {
|
||||
return m.StatusTimeCount()
|
||||
|
@ -121,6 +121,8 @@ const (
|
||||
RANDOM = "random"
|
||||
OFFEND = "offend"
|
||||
OFFSET = "offset"
|
||||
SUBKEY = "subkey"
|
||||
ORDER = "order"
|
||||
|
||||
ICON = "icon"
|
||||
PAGE = "page"
|
||||
|
@ -121,6 +121,11 @@ func Append(m *ice.Message, p string, cb ice.Any) {
|
||||
}
|
||||
}
|
||||
func Save(m *ice.Message, w io.Writer, s string, cb ice.Any) {
|
||||
switch content := m.Optionv(CONTENT).(type) {
|
||||
case io.Reader:
|
||||
io.Copy(w, content)
|
||||
return
|
||||
}
|
||||
if n, e := fmt.Fprint(w, s); !m.Warn(e) {
|
||||
switch cb := cb.(type) {
|
||||
case func(int):
|
||||
|
@ -56,7 +56,7 @@ const ROUTE = "route"
|
||||
|
||||
func init() {
|
||||
Index.MergeCommands(ice.Commands{
|
||||
ROUTE: {Name: "route space:text cmds:text auto spide cmds build travel prunes", Help: "路由表", Actions: ice.MergeActions(ice.Actions{
|
||||
ROUTE: {Name: "route space:text cmds:text auto spide cmds build travel monitor prunes", Help: "路由表", Actions: ice.MergeActions(ice.Actions{
|
||||
ice.MAIN: {Help: "首页", Hand: func(m *ice.Message, arg ...string) {
|
||||
ctx.ProcessField(m, CHAT_IFRAME, m.MergePod(kit.Select(m.Option(SPACE), arg, 0)), arg...)
|
||||
}},
|
||||
@ -113,7 +113,9 @@ func init() {
|
||||
PushPodCmd(m, "", m.ActionKey())
|
||||
m.Table(func(value ice.Maps) { kit.If(value[SPACE], func() { mdb.HashCreate(m.Spawn(), kit.Simple(value)) }) })
|
||||
m.ProcessRefresh()
|
||||
// m.StatusTimeCount()
|
||||
}},
|
||||
"monitor": {Help: "监控", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.ProcessOpen(m.Cmdv(SPIDE, "monitor", CLIENT_URL))
|
||||
}},
|
||||
}, ctx.CmdAction(), mdb.HashAction(mdb.SHORT, SPACE, mdb.FIELD, "time,space,type,module,version,md5,size,path,hostname", mdb.SORT, "type,space", mdb.ACTION, ice.MAIN)), Hand: func(m *ice.Message, arg ...string) {
|
||||
if len(arg) > 1 {
|
||||
|
@ -152,6 +152,8 @@ func ShareLocalFile(m *ice.Message, arg ...string) {
|
||||
} else if p := kit.Path(ice.USR_LOCAL_WORK, m.Option(ice.POD), p); nfs.Exists(m, p) {
|
||||
m.RenderDownload(p)
|
||||
return
|
||||
} else {
|
||||
m.Debug("what %v %v", p, nfs.Exists(m, p))
|
||||
}
|
||||
pp := path.Join(ice.VAR_PROXY, m.Option(ice.POD), p)
|
||||
cache, size := time.Now().Add(-time.Hour*24), int64(0)
|
||||
|
@ -127,7 +127,7 @@ func _space_exec(m *ice.Message, source, target []string, c *websocket.Conn) {
|
||||
}
|
||||
func _space_echo(m *ice.Message, source, target []string, c *websocket.Conn) {
|
||||
if m.Options(ice.MSG_SOURCE, source, ice.MSG_TARGET, target[1:]); !m.Warn(c.WriteMessage(1, []byte(m.FormatMeta()))) {
|
||||
m.Log(tcp.SEND, "%v->%v %v %v", source, target, m.Detailv(), m.FormatsMeta(nil))
|
||||
// m.Log(tcp.SEND, "%v->%v %v %v", source, target, m.Detailv(), m.FormatsMeta(nil))
|
||||
}
|
||||
}
|
||||
func _space_send(m *ice.Message, name string, arg ...string) (h string) {
|
||||
|
@ -258,16 +258,17 @@ func init() {
|
||||
m.Cmd("", mdb.CREATE, ice.OPS, kit.Select("http://127.0.0.1:9020", conf[cli.CTX_OPS]))
|
||||
m.Cmd("", mdb.CREATE, ice.DEV, kit.Select(kit.Select("https://contexts.com.cn", ice.Info.Make.Domain), conf[cli.CTX_DEV]))
|
||||
m.Cmd("", mdb.CREATE, ice.COM, kit.Select("https://contexts.com.cn", conf[cli.CTX_COM]))
|
||||
m.Cmd("", mdb.CREATE, ice.HUB, kit.Select("https://repos.shylinux.com", conf[cli.CTX_HUB]))
|
||||
m.Cmd("", mdb.CREATE, ice.SHY, kit.Select(kit.Select("https://shylinux.com", ice.Info.Make.Remote), conf[cli.CTX_SHY]))
|
||||
}},
|
||||
mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) {
|
||||
mdb.HashSelectValue(m, func(value ice.Map) { m.Push(kit.Select(ORIGIN, arg, 0), value[ORIGIN]) })
|
||||
mdb.HashSelectValue(m.Spawn(), func(value ice.Map) { m.Push(kit.Select(ORIGIN, arg, 0), kit.Value(value, CLIENT_ORIGIN)) })
|
||||
}},
|
||||
mdb.SEARCH: {Hand: func(m *ice.Message, arg ...string) {
|
||||
if mdb.IsSearchPreview(m, arg) {
|
||||
m.PushSearch(mdb.TYPE, LINK, mdb.NAME, ice.DEV, mdb.TEXT, mdb.HashSelectField(m, ice.DEV, CLIENT_ORIGIN))
|
||||
m.PushSearch(mdb.TYPE, LINK, mdb.NAME, ice.COM, mdb.TEXT, mdb.HashSelectField(m, ice.COM, CLIENT_ORIGIN))
|
||||
m.PushSearch(mdb.TYPE, LINK, mdb.NAME, ice.SHY, mdb.TEXT, mdb.HashSelectField(m, ice.SHY, CLIENT_ORIGIN))
|
||||
mdb.HashSelectValue(m.Spawn(), func(value ice.Map) {
|
||||
m.PushSearch(mdb.TYPE, LINK, mdb.NAME, kit.Value(value, CLIENT_NAME), mdb.TEXT, kit.Value(value, CLIENT_ORIGIN), value)
|
||||
})
|
||||
}
|
||||
}},
|
||||
mdb.CREATE: {Name: "create name link", Hand: func(m *ice.Message, arg ...string) { _spide_create(m, m.Option(mdb.NAME), m.Option(LINK)) }},
|
||||
|
1
conf.go
1
conf.go
@ -34,6 +34,7 @@ const (
|
||||
MISC = "misc"
|
||||
|
||||
SHY = "shy"
|
||||
HUB = "hub"
|
||||
COM = "com"
|
||||
DEV = "dev"
|
||||
APP = "app"
|
||||
|
@ -91,6 +91,7 @@ func init() {
|
||||
}, ctx.ConfAction(SSO, "")), Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Option("language.list", m.Cmd(nfs.DIR, path.Join(ice.SRC_TEMPLATE, m.PrefixKey(), aaa.LANGUAGE), nfs.FILE).Appendv(nfs.FILE))
|
||||
m.Option("theme.list", m.Cmd(nfs.DIR, path.Join(ice.SRC_TEMPLATE, m.PrefixKey(), aaa.THEME), nfs.FILE).Appendv(nfs.FILE))
|
||||
m.Option("spide.hub", m.Cmdv(web.SPIDE, ice.HUB, web.CLIENT_URL))
|
||||
if gdb.Event(m, HEADER_AGENT); !_header_check(m, arg...) {
|
||||
return
|
||||
}
|
||||
|
@ -50,9 +50,9 @@ func init() {
|
||||
switch arg[0] {
|
||||
case mdb.NAME:
|
||||
m.Push(arg[0], web.UserWeb(m).Host)
|
||||
case mdb.LINK:
|
||||
case mdb.LINK, ctx.ARGS:
|
||||
m.Push(arg[0], m.Option(ice.MSG_USERWEB))
|
||||
m.Copy(m.Cmd(web.SPIDE).CutTo("client.url", arg[0]))
|
||||
m.Copy(m.Cmd(web.SPIDE).CutTo(web.CLIENT_URL, arg[0]))
|
||||
}
|
||||
}
|
||||
}},
|
||||
|
@ -89,6 +89,7 @@ func _status_list(m *ice.Message) (files, adds, dels int, last string) {
|
||||
}
|
||||
|
||||
const (
|
||||
GITEA = "gitea"
|
||||
OAUTH = "oauth"
|
||||
DIFF = "diff"
|
||||
OPT = "opt"
|
||||
@ -166,17 +167,18 @@ func init() {
|
||||
}
|
||||
m.Push(mdb.TEXT, strings.Join(text, ", "))
|
||||
}},
|
||||
GITEA: {Help: "资源", Hand: func(m *ice.Message, arg ...string) { m.ProcessOpen(m.Cmdv("web.spide", ice.HUB, web.CLIENT_URL)) }},
|
||||
}, aaa.RoleAction(), web.DreamAction(), Prefix(REPOS), mdb.ImportantHashAction()), Hand: func(m *ice.Message, arg ...string) {
|
||||
if len(arg) > 0 && arg[0] == ctx.ACTION {
|
||||
m.Cmdy(REPOS, arg)
|
||||
} else if config, err := config.LoadConfig(config.GlobalScope); err == nil && config.User.Email == "" && mdb.Config(m, aaa.EMAIL) == "" {
|
||||
m.Action(CONFIGS).Echo("please config email and name. ").EchoButton(CONFIGS)
|
||||
} else if !nfs.Exists(m, ".git") {
|
||||
m.Action("init").Echo("please init repos. ").EchoButton("init")
|
||||
m.Action(INIT).Echo("please init repos. ").EchoButton(INIT)
|
||||
} else if len(arg) == 0 {
|
||||
kit.If(config != nil, func() { m.Option(aaa.EMAIL, kit.Select(mdb.Config(m, aaa.EMAIL), config.User.Email)) })
|
||||
m.Cmdy(REPOS, STATUS).Action(PULL, PUSH, INSTEADOF, "oauth", CONFIGS)
|
||||
m.Cmdy(code.PUBLISH, ice.CONTEXTS, "dev")
|
||||
m.Cmdy(REPOS, STATUS).Action(PULL, PUSH, INSTEADOF, OAUTH, CONFIGS, GITEA)
|
||||
m.Cmdy(code.PUBLISH, ice.CONTEXTS, ice.DEV)
|
||||
} else {
|
||||
m.Cmdy(REPOS, arg[0], MASTER, INDEX, m.Cmdv(REPOS, arg[0], MASTER, INDEX, nfs.FILE))
|
||||
}
|
||||
|
@ -111,5 +111,7 @@ func (m *Message) ProcessHold(text ...Any) { m.Process(PROCESS_HOLD, text...)
|
||||
func (m *Message) ProcessBack() { m.Process(PROCESS_BACK) }
|
||||
func (m *Message) ProcessRich(arg ...Any) { m.Process(PROCESS_RICH, arg...) }
|
||||
func (m *Message) ProcessGrow(arg ...Any) { m.Process(PROCESS_GROW, arg...) }
|
||||
func (m *Message) ProcessOpen(url string) { m.Process(PROCESS_OPEN, url) }
|
||||
func (m *Message) ProcessOpen(url string) {
|
||||
kit.If(url, func() { m.Process(PROCESS_OPEN, url) })
|
||||
}
|
||||
func (m *Message) ProcessClose() { m.Process(PROCESS_CLOSE) }
|
||||
|
Loading…
x
Reference in New Issue
Block a user