mirror of
https://shylinux.com/x/icebergs
synced 2025-04-26 01:24:05 +08:00
opt some
This commit is contained in:
parent
054c3ebca7
commit
3527c4275d
@ -44,7 +44,7 @@ func SessCreate(m *ice.Message, username string) string {
|
||||
return m.Option(ice.MSG_SESSID, _sess_create(m, username))
|
||||
}
|
||||
func SessIsCli(m *ice.Message) bool {
|
||||
if m.Option(ice.MSG_USERUA) == "" || strings.Contains(m.Option(ice.MSG_USERUA), "curl") {
|
||||
if m.Option(ice.MSG_USERUA) == "" || !strings.HasPrefix(m.Option(ice.MSG_USERUA), "Mozilla/5.0") {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
|
@ -67,11 +67,6 @@ func UserRole(m *ice.Message, username interface{}) (role string) {
|
||||
})
|
||||
return
|
||||
}
|
||||
func UserRoot(m *ice.Message) {
|
||||
ice.Info.PassWord = kit.Hashs("uniq")
|
||||
ice.Info.PassWord = ice.Info.UserName
|
||||
_user_create(m, ice.Info.UserName, ice.Info.PassWord)
|
||||
}
|
||||
func UserLogin(m *ice.Message, username, password string) bool {
|
||||
if _user_login(m, username, password) {
|
||||
m.Log_AUTH(
|
||||
@ -88,8 +83,6 @@ const (
|
||||
INVITE = "invite"
|
||||
)
|
||||
const (
|
||||
BACKGROUND = "background"
|
||||
|
||||
AVATAR = "avatar"
|
||||
GENDER = "gender"
|
||||
MOBILE = "mobile"
|
||||
@ -99,6 +92,8 @@ const (
|
||||
COUNTRY = "country"
|
||||
PROVINCE = "province"
|
||||
LANGUAGE = "language"
|
||||
|
||||
BACKGROUND = "background"
|
||||
)
|
||||
const (
|
||||
USERZONE = "userzone"
|
||||
@ -124,9 +119,6 @@ func init() {
|
||||
_user_create(m, m.Option(USERNAME), m.Option(PASSWORD))
|
||||
_role_user(m, m.Option(USERROLE), m.Option(USERNAME))
|
||||
}},
|
||||
ROLE: {Name: "role userrole=void,tech", Help: "角色", Hand: func(m *ice.Message, arg ...string) {
|
||||
_role_user(m, m.Option(USERROLE), m.Option(USERNAME))
|
||||
}},
|
||||
mdb.MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(mdb.MODIFY, USER, "", mdb.HASH, USERNAME, m.Option(USERNAME), arg)
|
||||
}},
|
||||
@ -138,9 +130,6 @@ func init() {
|
||||
_user_search(m, arg[0], arg[1], kit.Select("", arg, 2))
|
||||
}
|
||||
}},
|
||||
"login": {Name: "login", Help: "登录", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.EchoQRCode("hi")
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
m.Fields(len(arg) == 0, "time,username,userzone,usernick")
|
||||
m.Cmdy(mdb.SELECT, USER, "", mdb.HASH, USERNAME, arg)
|
||||
|
@ -1,8 +1,6 @@
|
||||
package ctx
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
ice "github.com/shylinux/icebergs"
|
||||
"github.com/shylinux/icebergs/base/mdb"
|
||||
kit "github.com/shylinux/toolkits"
|
||||
@ -27,7 +25,7 @@ func _command_list(m *ice.Message, name string) {
|
||||
m.Spawn(m.Source()).Search(name, func(p *ice.Context, s *ice.Context, key string, cmd *ice.Command) {
|
||||
m.Push(kit.MDB_KEY, s.Cap(ice.CTX_FOLLOW))
|
||||
m.Push(kit.MDB_NAME, kit.Format(cmd.Name))
|
||||
m.Push(kit.MDB_HELP, kit.Simple(cmd.Help)[0])
|
||||
m.Push(kit.MDB_HELP, kit.Format(cmd.Help))
|
||||
m.Push(kit.MDB_META, kit.Formats(cmd.Meta))
|
||||
m.Push(kit.MDB_LIST, kit.Formats(cmd.List))
|
||||
})
|
||||
@ -58,7 +56,7 @@ func init() {
|
||||
}
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
_command_list(m, strings.Join(arg, "."))
|
||||
_command_list(m, kit.Keys(arg))
|
||||
}},
|
||||
}})
|
||||
}
|
||||
|
@ -94,7 +94,7 @@ const CONFIG = "config"
|
||||
func init() {
|
||||
Index.Merge(&ice.Context{
|
||||
Configs: map[string]*ice.Config{
|
||||
CONFIG: {Name: CONFIG, Help: "配置", Value: kit.Data(kit.MDB_PATH, "var/conf")},
|
||||
CONFIG: {Name: CONFIG, Help: "配置", Value: kit.Data(kit.MDB_PATH, ice.VAR_CONF)},
|
||||
},
|
||||
Commands: map[string]*ice.Command{
|
||||
CONFIG: {Name: "config key auto", Help: "配置", Action: map[string]*ice.Action{
|
||||
|
@ -7,9 +7,9 @@ import (
|
||||
|
||||
func _context_list(m *ice.Message, all bool) {
|
||||
m.Travel(func(p *ice.Context, s *ice.Context) {
|
||||
m.Push(kit.MDB_NAME, kit.Select("ice", s.Cap(ice.CTX_FOLLOW)))
|
||||
m.Push(ice.CTX_STATUS, s.Cap(ice.CTX_STATUS))
|
||||
m.Push(ice.CTX_STREAM, s.Cap(ice.CTX_STREAM))
|
||||
m.Push(kit.MDB_NAME, s.Cap(ice.CTX_FOLLOW))
|
||||
m.Push(kit.MDB_STATUS, s.Cap(ice.CTX_STATUS))
|
||||
m.Push(kit.MDB_STREAM, s.Cap(ice.CTX_STREAM))
|
||||
m.Push(kit.MDB_HELP, s.Help)
|
||||
})
|
||||
}
|
||||
|
@ -11,7 +11,8 @@ var Index = &ice.Context{Name: CTX, Help: "标准模块", Commands: map[string]*
|
||||
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
m.Cmd(mdb.SEARCH, mdb.CREATE, COMMAND, m.Prefix(COMMAND))
|
||||
}},
|
||||
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {}},
|
||||
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
}},
|
||||
}}
|
||||
|
||||
func init() { ice.Index.Register(Index, nil, CONTEXT, COMMAND, CONFIG) }
|
||||
|
@ -293,7 +293,6 @@ func (f *Frame) Start(m *ice.Message, arg ...string) bool {
|
||||
m.Option(ice.MSG_USERNAME, ice.Info.UserName)
|
||||
m.Option(ice.MSG_USERROLE, aaa.ROOT)
|
||||
m.Option(ice.MSG_USERZONE, "boot")
|
||||
aaa.UserRoot(m)
|
||||
default:
|
||||
f.target = m.Source()
|
||||
|
||||
|
@ -173,9 +173,13 @@ func _serve_login(msg *ice.Message, cmds []string, w http.ResponseWriter, r *htt
|
||||
} else if msg.Conf(SERVE, kit.Keym(aaa.WHITE, ls[1])) == "true" {
|
||||
if msg.Option(ice.MSG_USERNAME) == "" && msg.Option(SHARE) != "" {
|
||||
share := msg.Cmd(SHARE, msg.Option(SHARE))
|
||||
msg.Option(ice.MSG_USERNAME, share.Append(aaa.USERNAME))
|
||||
msg.Option(ice.MSG_USERROLE, share.Append(aaa.USERROLE))
|
||||
msg.Debug("login ")
|
||||
switch share.Append(kit.MDB_TYPE) {
|
||||
case LOGIN:
|
||||
// Render(msg, aaa.SessCreate(msg, share.Append(aaa.USERNAME)))
|
||||
case FIELD:
|
||||
msg.Option(ice.MSG_USERNAME, share.Append(aaa.USERNAME))
|
||||
msg.Option(ice.MSG_USERROLE, share.Append(aaa.USERROLE))
|
||||
}
|
||||
}
|
||||
return cmds, true // 白名单
|
||||
}
|
||||
@ -208,13 +212,13 @@ func init() {
|
||||
ice.REQUIRE, true, ice.PUBLISH, true,
|
||||
), "logheaders", false,
|
||||
|
||||
kit.SSH_STATIC, kit.Dict("/", "usr/volcanos/"),
|
||||
ice.VOLCANOS, kit.Dict(kit.MDB_PATH, "usr/volcanos", kit.SSH_INDEX, "page/index.html",
|
||||
kit.SSH_REPOS, "https://github.com/shylinux/volcanos", kit.SSH_BRANCH, "master",
|
||||
), ice.PUBLISH, "usr/publish/",
|
||||
kit.SSH_STATIC, kit.Dict("/", ice.USR_VOLCANOS),
|
||||
ice.VOLCANOS, kit.Dict(kit.MDB_PATH, ice.USR_VOLCANOS, kit.SSH_INDEX, "page/index.html",
|
||||
kit.SSH_REPOS, "https://github.com/shylinux/volcanos", kit.SSH_BRANCH, kit.SSH_MASTER,
|
||||
), ice.PUBLISH, ice.USR_PUBLISH,
|
||||
|
||||
ice.INTSHELL, kit.Dict(kit.MDB_PATH, "usr/intshell", kit.SSH_INDEX, "index.sh",
|
||||
kit.SSH_REPOS, "https://github.com/shylinux/intshell", kit.SSH_BRANCH, "master",
|
||||
ice.INTSHELL, kit.Dict(kit.MDB_PATH, ice.USR_INTSHELL, kit.SSH_INDEX, "index.sh",
|
||||
kit.SSH_REPOS, "https://github.com/shylinux/intshell", kit.SSH_BRANCH, kit.SSH_MASTER,
|
||||
), ice.REQUIRE, ".ish/pluged",
|
||||
)},
|
||||
},
|
||||
|
8
conf.go
8
conf.go
@ -21,6 +21,14 @@ const ( // REPOS
|
||||
REQUIRE = "require"
|
||||
)
|
||||
const ( // DIR
|
||||
USR_VOLCANOS = "usr/volcanos"
|
||||
USR_INTSHELL = "usr/intshell"
|
||||
USR_PUBLISH = "usr/publish"
|
||||
|
||||
PROTO_JS = "proto.js"
|
||||
FRAME_JS = "frame.js"
|
||||
|
||||
VAR_CONF = "var/conf"
|
||||
ETC_MISS = "etc/miss.sh"
|
||||
ETC_INIT = "etc/init.shy"
|
||||
ETC_EXIT = "etc/exit.shy"
|
||||
|
@ -101,7 +101,7 @@ func init() {
|
||||
}},
|
||||
|
||||
code.WEBPACK: {Name: "webpack", Help: "网页打包", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(code.WEBPACK, mdb.CREATE)
|
||||
m.Cmdy(code.WEBPACK, mdb.CREATE, kit.MDB_NAME, m.Option(kit.MDB_NAME))
|
||||
}},
|
||||
aaa.BACKGROUND: {Name: "background", Help: "背景图片", Hand: func(m *ice.Message, arg ...string) {
|
||||
_header_users(m, aaa.BACKGROUND, arg...)
|
||||
|
@ -1,93 +1,89 @@
|
||||
package code
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"path"
|
||||
|
||||
ice "github.com/shylinux/icebergs"
|
||||
"github.com/shylinux/icebergs/base/mdb"
|
||||
"github.com/shylinux/icebergs/base/nfs"
|
||||
"github.com/shylinux/icebergs/base/web"
|
||||
kit "github.com/shylinux/toolkits"
|
||||
|
||||
"fmt"
|
||||
"path"
|
||||
"strings"
|
||||
)
|
||||
|
||||
const WEBPACK = "webpack"
|
||||
|
||||
func init() {
|
||||
Index.Merge(&ice.Context{
|
||||
Configs: map[string]*ice.Config{
|
||||
WEBPACK: {Name: WEBPACK, Help: "webpack", Value: kit.Data(kit.MDB_PATH, "usr/volcanos")},
|
||||
},
|
||||
Commands: map[string]*ice.Command{
|
||||
WEBPACK: {Name: "webpack path auto create", Help: "打包", Action: map[string]*ice.Action{
|
||||
mdb.CREATE: {Name: "create name=demo", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
||||
css, _, e := kit.Create(path.Join(m.Conf(WEBPACK, kit.META_PATH), "page/cache.css"))
|
||||
m.Assert(e)
|
||||
defer css.Close()
|
||||
Index.Merge(&ice.Context{Commands: map[string]*ice.Command{
|
||||
WEBPACK: {Name: "webpack path auto create", Help: "打包", Action: map[string]*ice.Action{
|
||||
mdb.CREATE: {Name: "create name=demo", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
||||
dir := m.Conf(web.SERVE, kit.Keym(ice.VOLCANOS, kit.SSH_PATH))
|
||||
css, _, e := kit.Create(path.Join(dir, "page/cache.css"))
|
||||
m.Assert(e)
|
||||
defer css.Close()
|
||||
|
||||
js, _, e := kit.Create(path.Join(m.Conf(WEBPACK, kit.META_PATH), "page/cache.js"))
|
||||
m.Assert(e)
|
||||
defer js.Close()
|
||||
js, _, e := kit.Create(path.Join(dir, "page/cache.js"))
|
||||
m.Assert(e)
|
||||
defer js.Close()
|
||||
|
||||
m.Option(nfs.DIR_ROOT, m.Conf(WEBPACK, kit.META_PATH))
|
||||
m.Option(nfs.DIR_TYPE, nfs.CAT)
|
||||
m.Option(nfs.DIR_DEEP, true)
|
||||
|
||||
for _, k := range []string{"lib", "panel", "plugin"} {
|
||||
m.Cmd(nfs.DIR, k).Table(func(index int, value map[string]string, head []string) {
|
||||
if strings.HasSuffix(value[kit.MDB_PATH], ".css") {
|
||||
js.WriteString(`Volcanos.meta.cache["` + path.Join("/", value[kit.MDB_PATH]) + "\"] = []\n")
|
||||
css.WriteString(m.Cmdx(nfs.CAT, value[kit.MDB_PATH]))
|
||||
}
|
||||
})
|
||||
|
||||
m.Cmd(nfs.DIR, k).Table(func(index int, value map[string]string, head []string) {
|
||||
if strings.HasSuffix(value[kit.MDB_PATH], ".js") {
|
||||
js.WriteString(`_can_name = "` + path.Join("/", value[kit.MDB_PATH]) + "\";\n")
|
||||
js.WriteString(m.Cmdx(nfs.CAT, value[kit.MDB_PATH]))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
for _, k := range []string{"frame.js", "publish/order.js"} {
|
||||
js.WriteString(`_can_name = "` + path.Join("/", k) + "\"\n")
|
||||
js.WriteString(m.Cmdx(nfs.CAT, k))
|
||||
}
|
||||
|
||||
if f, _, e := kit.Create("usr/publish/webpack/" + m.Option("name") + ".js"); m.Assert(e) {
|
||||
defer f.Close()
|
||||
|
||||
f.WriteString("\n")
|
||||
f.WriteString(kit.Format(`Volcanos.meta.args = {river: "%s", storm: "%s"}`, m.Option("river"), m.Option("storm")))
|
||||
f.WriteString("\n")
|
||||
f.WriteString(`Volcanos.meta.pack = ` + kit.Formats(kit.UnMarshal(kit.Select("{}", m.Option("content")))))
|
||||
}
|
||||
|
||||
m.Option(nfs.DIR_ROOT, "")
|
||||
if f, p, e := kit.Create("usr/publish/webpack/" + m.Option("name") + ".html"); m.Assert(e) {
|
||||
f.WriteString(fmt.Sprintf(_pack,
|
||||
m.Cmdx(nfs.CAT, "usr/volcanos/page/cache.css"),
|
||||
m.Cmdx(nfs.CAT, "usr/volcanos/page/index.css"),
|
||||
|
||||
m.Cmdx(nfs.CAT, "usr/volcanos/proto.js"),
|
||||
m.Cmdx(nfs.CAT, "usr/publish/webpack/"+m.Option("name")+".js"),
|
||||
m.Cmdx(nfs.CAT, "usr/volcanos/page/cache.js"),
|
||||
m.Cmdx(nfs.CAT, "usr/volcanos/page/index.js"),
|
||||
))
|
||||
m.Echo(p)
|
||||
}
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
m.Option(nfs.DIR_ROOT, m.Conf(PUBLISH, kit.META_PATH))
|
||||
m.Option(nfs.DIR_TYPE, nfs.CAT)
|
||||
m.Option(nfs.DIR_ROOT, dir)
|
||||
m.Option(nfs.DIR_DEEP, true)
|
||||
m.Option(nfs.DIR_TYPE, nfs.CAT)
|
||||
|
||||
m.Cmdy(nfs.DIR, WEBPACK).Table(func(index int, value map[string]string, head []string) {
|
||||
m.PushDownload(kit.MDB_LINK, path.Join(m.Option(nfs.DIR_ROOT), value[kit.MDB_PATH]))
|
||||
})
|
||||
for _, k := range []string{"lib", "panel", "plugin"} {
|
||||
m.Cmd(nfs.DIR, k).Table(func(index int, value map[string]string, head []string) {
|
||||
switch kit.Ext(value[kit.MDB_PATH]) {
|
||||
case CSS:
|
||||
js.WriteString(`Volcanos.meta.cache["` + path.Join("/", value[kit.MDB_PATH]) + "\"] = []\n")
|
||||
css.WriteString(m.Cmdx(nfs.CAT, value[kit.MDB_PATH]))
|
||||
|
||||
case JS:
|
||||
js.WriteString(`_can_name = "` + path.Join("/", value[kit.MDB_PATH]) + "\";\n")
|
||||
js.WriteString(m.Cmdx(nfs.CAT, value[kit.MDB_PATH]))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
for _, k := range []string{"publish/order.js"} {
|
||||
js.WriteString(`_can_name = "` + path.Join("/", k) + "\"\n")
|
||||
js.WriteString(m.Cmdx(nfs.CAT, k))
|
||||
}
|
||||
|
||||
if f, _, e := kit.Create("usr/publish/webpack/" + m.Option(kit.MDB_NAME) + ".js"); m.Assert(e) {
|
||||
defer f.Close()
|
||||
|
||||
f.WriteString("\n")
|
||||
f.WriteString(kit.Format(`Volcanos.meta.args = {river: "%s", storm: "%s"}`, m.Option("river"), m.Option("storm")))
|
||||
f.WriteString("\n")
|
||||
f.WriteString(`Volcanos.meta.pack = ` + kit.Formats(kit.UnMarshal(kit.Select("{}", m.Option("content")))))
|
||||
}
|
||||
|
||||
m.Option(nfs.DIR_ROOT, "")
|
||||
if f, p, e := kit.Create("usr/publish/webpack/" + m.Option(kit.MDB_NAME) + ".html"); m.Assert(e) {
|
||||
f.WriteString(fmt.Sprintf(_pack,
|
||||
m.Cmdx(nfs.CAT, path.Join(ice.USR_VOLCANOS, "page/cache.css")),
|
||||
m.Cmdx(nfs.CAT, path.Join(ice.USR_VOLCANOS, "page/index.css")),
|
||||
|
||||
m.Cmdx(nfs.CAT, path.Join(ice.USR_VOLCANOS, ice.PROTO_JS)),
|
||||
m.Cmdx(nfs.CAT, path.Join(ice.USR_VOLCANOS, ice.FRAME_JS)),
|
||||
|
||||
m.Cmdx(nfs.CAT, path.Join(ice.USR_PUBLISH, "webpack/"+m.Option(kit.MDB_NAME)+".js")),
|
||||
m.Cmdx(nfs.CAT, path.Join(ice.USR_VOLCANOS, "page/cache.js")),
|
||||
m.Cmdx(nfs.CAT, path.Join(ice.USR_VOLCANOS, "page/index.js")),
|
||||
))
|
||||
m.Echo(p)
|
||||
}
|
||||
}},
|
||||
},
|
||||
})
|
||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
m.Option(nfs.DIR_ROOT, m.Conf(PUBLISH, kit.META_PATH))
|
||||
m.Option(nfs.DIR_TYPE, nfs.CAT)
|
||||
m.Option(nfs.DIR_DEEP, true)
|
||||
|
||||
m.Cmdy(nfs.DIR, WEBPACK).Table(func(index int, value map[string]string, head []string) {
|
||||
m.PushDownload(kit.MDB_LINK, path.Join(m.Option(nfs.DIR_ROOT), value[kit.MDB_PATH]))
|
||||
})
|
||||
}},
|
||||
}})
|
||||
}
|
||||
|
||||
const _pack = `
|
||||
|
5
misc.go
5
misc.go
@ -257,6 +257,11 @@ type Option struct {
|
||||
func OptionFields(str string) Option { return Option{"fields", str} }
|
||||
func OptionHash(str string) Option { return Option{kit.MDB_HASH, str} }
|
||||
|
||||
type Sort struct {
|
||||
Fields string
|
||||
Method string
|
||||
}
|
||||
|
||||
func (m *Message) Toast(content string, arg ...interface{}) {
|
||||
if len(arg) > 1 {
|
||||
switch val := arg[1].(type) {
|
||||
|
@ -21,6 +21,7 @@ field sess aaa.sess
|
||||
field user aaa.user
|
||||
|
||||
chapter "项目"
|
||||
field "icebergs" web.code.git.trend args `icebergs`
|
||||
field "icebergs" web.code.inner args `usr/icebergs/ misc/wx/wx.go`
|
||||
field "趋势图" web.code.git.trend args `icebergs`
|
||||
field "源代码" web.code.inner args `usr/icebergs/ misc/wx/wx.go`
|
||||
field "架构图" web.code.git.spide args `icebergs`
|
||||
|
||||
|
5
type.go
5
type.go
@ -662,6 +662,11 @@ func (m *Message) cmd(arg ...interface{}) *Message {
|
||||
case Option:
|
||||
opts[val.Name] = val.Value
|
||||
|
||||
case *Sort:
|
||||
defer func() { m.Sort(val.Fields, val.Method) }()
|
||||
case Sort:
|
||||
defer func() { m.Sort(val.Fields, val.Method) }()
|
||||
|
||||
default:
|
||||
if reflect.Func == reflect.TypeOf(val).Kind() {
|
||||
cbs = val
|
||||
|
Loading…
x
Reference in New Issue
Block a user