diff --git a/base/cli/daemon.go b/base/cli/daemon.go index d6b599d8..7fa5efdb 100644 --- a/base/cli/daemon.go +++ b/base/cli/daemon.go @@ -6,8 +6,6 @@ import ( "github.com/shylinux/icebergs/base/mdb" kit "github.com/shylinux/toolkits" - "fmt" - "os" "os/exec" "strings" ) @@ -23,7 +21,6 @@ func _daemon_show(m *ice.Message, cmd *exec.Cmd, out, err string) { cmd.Stderr = f } - cmd.Env = append(cmd.Env, fmt.Sprintf("PATH=%s", os.Getenv("PATH"))) if e := cmd.Start(); m.Warn(e != nil, ErrStart, cmd.Args, " ", e) { return } diff --git a/base/web/dream.go b/base/web/dream.go index e990800e..3b663646 100644 --- a/base/web/dream.go +++ b/base/web/dream.go @@ -60,7 +60,7 @@ func _dream_show(m *ice.Message, name string) { m.Optionv(cli.CMD_DIR, p) m.Optionv(cli.CMD_ENV, kit.Simple( "ctx_dev", m.Conf(cli.RUNTIME, "conf.ctx_dev"), - "PATH", kit.Path(path.Join(p, "bin"))+":"+os.Getenv("PATH"), + "PATH", kit.Path(path.Join(p, "bin"))+":"+kit.Path("bin")+":"+os.Getenv("PATH"), "USER", ice.Info.UserName, m.Confv(DREAM, "meta.env"), )) // 启动任务 diff --git a/base/web/route.go b/base/web/route.go index 1022be52..0f668c6d 100644 --- a/base/web/route.go +++ b/base/web/route.go @@ -56,7 +56,6 @@ func init() { m.Cmdy("web.code.publish", "contexts", "tmux") m.Cmdy("web.code.publish", "contexts", "base") m.Cmdy("web.code.publish", "contexts", "miss") - m.Cmdy("web.wiki.image", "qrcode", m.Option(ice.MSG_USERWEB)) }}, mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) { diff --git a/base/web/serve.go b/base/web/serve.go index 639fec00..c7497c02 100644 --- a/base/web/serve.go +++ b/base/web/serve.go @@ -64,6 +64,24 @@ func _serve_main(m *ice.Message, w http.ResponseWriter, r *http.Request) bool { return false } + if strings.HasPrefix(r.URL.Path, "/debug") { + r.URL.Path = strings.Replace(r.URL.Path, "/debug", "/code", -1) + return true + } + + if b, ok := ice.BinPack[r.URL.Path]; ok { + if strings.HasSuffix(r.URL.Path, ".css") { + w.Header().Set("Content-Type", "text/css; charset=utf-8") + } + w.Write(b) + return false + } + + if r.URL.Path == "/" && strings.Contains(r.Header.Get("User-Agent"), "curl") { + http.ServeFile(w, r, path.Join(m.Conf(SERVE, "meta.intshell.path"), m.Conf(SERVE, "meta.intshell.index"))) + return false + } + // 单点登录 if r.URL.Path == "/" && m.Conf(SERVE, "meta.sso") != "" { sessid := r.FormValue(ice.MSG_SESSID) @@ -82,26 +100,8 @@ func _serve_main(m *ice.Message, w http.ResponseWriter, r *http.Request) bool { http.Redirect(w, r, m.Conf(SERVE, "meta.sso"), http.StatusTemporaryRedirect) return false } - return true } - if strings.HasPrefix(r.URL.Path, "/debug") { - r.URL.Path = strings.Replace(r.URL.Path, "/debug", "/code", -1) - return true - } - - if b, ok := ice.BinPack[r.URL.Path]; ok { - if strings.HasSuffix(r.URL.Path, ".css") { - w.Header().Set("Content-Type", "text/css; charset=utf-8") - } - w.Write(b) - return false - } - - if r.URL.Path == "/" && strings.Contains(r.Header.Get("User-Agent"), "curl") { - http.ServeFile(w, r, path.Join(m.Conf(SERVE, "meta.intshell.path"), m.Conf(SERVE, "meta.intshell.index"))) - return false - } return true } func _serve_handle(key string, cmd *ice.Command, msg *ice.Message, w http.ResponseWriter, r *http.Request) { @@ -197,7 +197,7 @@ func _serve_login(msg *ice.Message, cmds []string, w http.ResponseWriter, r *htt aaa.SessCheck(msg, msg.Option(ice.MSG_SESSID)) } - if !msg.Options(ice.MSG_USERNAME) && tcp.IsLocalHost(msg, msg.Option(ice.MSG_USERIP)) { + if !msg.Options(ice.MSG_USERNAME) && tcp.IsLocalHost(msg, msg.Option(ice.MSG_USERIP)) && msg.Conf(SERVE, "meta.localhost") == "true" { // 自动认证 aaa.UserLogin(msg, ice.Info.UserName, ice.Info.PassWord) } @@ -241,8 +241,10 @@ func init() { Configs: map[string]*ice.Config{ SERVE: {Name: SERVE, Help: "服务器", Value: kit.Data( kit.MDB_SHORT, kit.MDB_NAME, - "logheaders", "false", "black", kit.Dict(), "white", kit.Dict( - "space", true, "share", true, "plugin", true, "publish", true, + "logheaders", "false", + "localhost", "true", + "black", kit.Dict(), "white", kit.Dict( + "login", true, "space", true, "share", true, "plugin", true, "publish", true, ), "static", kit.Dict("/", "usr/volcanos/"), diff --git a/base/web/space.go b/base/web/space.go index facdeef2..76bf37f6 100644 --- a/base/web/space.go +++ b/base/web/space.go @@ -212,7 +212,7 @@ func init() { Commands: map[string]*ice.Command{ SPACE: {Name: "space name cmd auto", Help: "空间站", Action: map[string]*ice.Action{ "connect": {Name: "connect dev name", Help: "连接", Hand: func(m *ice.Message, arg ...string) { - _space_dial(m, arg[0], kit.Select(ice.Info.NodeName, arg[1])) + _space_dial(m, arg[0], kit.Select(ice.Info.NodeName, arg, 1)) }}, }, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { if len(arg) < 2 { diff --git a/core/code/compile.go b/core/code/compile.go index c5b26386..ad099f32 100644 --- a/core/code/compile.go +++ b/core/code/compile.go @@ -38,12 +38,7 @@ func init() { main := kit.Select("src/main.go", arg, 2) arch := kit.Select(m.Conf(cli.RUNTIME, "host.GOARCH"), arg, 1) goos := kit.Select(m.Conf(cli.RUNTIME, "host.GOOS"), arg, 0) - file := "" - if m.Option(cli.CMD_DIR) == "" { - file = path.Join(m.Conf(cmd, "meta.path"), kit.Keys(kit.Select("ice", m.Option("name")), goos, arch)) - } else { - file = kit.Keys(kit.Select("ice", m.Option("name")), goos, arch) - } + file := path.Join(m.Conf(cmd, "meta.path"), kit.Keys(kit.Select("ice"), goos, arch)) if goos == "windows" { // file += ".exe" } diff --git a/init.go b/init.go index 3ca79bac..9bc1d2c6 100644 --- a/init.go +++ b/init.go @@ -154,7 +154,7 @@ func Run(arg ...string) string { Pulse.root = Pulse Pulse.Option("cache.limit", "30") Pulse.Option("begin_time", Pulse.Time()) - _log_disable = false + _log_disable = true switch kit.Select("", arg, 0) { case "space", "serve": if _log_disable = false; frame.Begin(Pulse.Spawns(), arg...).Start(Pulse, arg...) { diff --git a/misc.go b/misc.go index 80246777..68864ac5 100644 --- a/misc.go +++ b/misc.go @@ -37,11 +37,11 @@ func (m *Message) Watch(key string, arg ...string) *Message { if len(arg) == 0 { arg = append(arg, m.Prefix("auto")) } - m.Cmd("gdb.event", "listen", "event", key, "cmd", strings.Join(arg, " ")) + m.Cmd("gdb.event", "action", "listen", "event", key, "cmd", strings.Join(arg, " ")) return m } func (m *Message) Event(key string, arg ...string) *Message { - m.Cmd("gdb.event", "action", "event", key, strings.Join(arg, " ")) + m.Cmd("gdb.event", "action", "action", "event", key, arg) return m } func (m *Message) Right(arg ...interface{}) bool { diff --git a/misc/lark/lark.go b/misc/lark/lark.go index 38ef71fd..9ca5797e 100644 --- a/misc/lark/lark.go +++ b/misc/lark/lark.go @@ -67,7 +67,7 @@ const ( const ( APP = "app" SHIP = "ship" - USER = "user" + USERS = "users" GROUP = "group" SEND = "send" @@ -91,9 +91,9 @@ var Index = &ice.Context{Name: "lark", Help: "机器人", ADD_BOT, "我来也~", P2P_CHAT_CREATE, "让我们做好朋友吧~", ), )}, - SHIP: {Name: SHIP, Help: "组织配置", Value: kit.Data(kit.MDB_SHORT, SHIP_ID)}, - USER: {Name: USER, Help: "用户配置", Value: kit.Data(kit.MDB_SHORT, OPEN_ID)}, - HOME: {Name: HOME, Help: "卡片配置", Value: kit.Data(kit.MDB_SHORT, OPEN_ID)}, + SHIP: {Name: SHIP, Help: "组织配置", Value: kit.Data(kit.MDB_SHORT, SHIP_ID)}, + USERS: {Name: USERS, Help: "用户配置", Value: kit.Data(kit.MDB_SHORT, OPEN_ID)}, + HOME: {Name: HOME, Help: "卡片配置", Value: kit.Data(kit.MDB_SHORT, OPEN_ID)}, META: {Name: META, Help: "卡片配置", Value: kit.Data( kit.MDB_SHORT, "url", )}, @@ -105,7 +105,7 @@ var Index = &ice.Context{Name: "lark", Help: "机器人", m.Cmd(DUTY, "boot", m.Conf(cli.RUNTIME, "boot.hostname"), m.Time()) }}, ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { - m.Save(APP, SHIP, USER, META) + m.Save(APP, SHIP, USERS, META) }}, APP: {Name: "app [name] auto", Help: "应用", Action: map[string]*ice.Action{ @@ -143,13 +143,13 @@ var Index = &ice.Context{Name: "lark", Help: "机器人", }) }) }}, - "user": {Name: "user ship_id", Hand: func(m *ice.Message, arg ...string) { + "users": {Name: "users ship_id", Hand: func(m *ice.Message, arg ...string) { m.Richs(APP, nil, "bot", func(key string, value map[string]interface{}) { data := raw(m, "/open-apis/contact/v1/department/user/list", "department_id", arg[0], "page_size", "100", "fetch_child", "true") kit.Fetch(kit.Value(data, "data.user_list"), func(index int, value map[string]interface{}) { - msg := m.Cmd(m.Prefix(USER), value[OPEN_ID]) + msg := m.Cmd(USERS, value[OPEN_ID]) // m.Push("avatar", m.Cmdx(mdb.RENDER, web.RENDER.IMG, msg.Append("avatar_72"))) m.Push("gender", kit.Select("男", "女", msg.Append("gender") == "2")) m.Push(kit.MDB_NAME, msg.Append(kit.MDB_NAME)) @@ -174,13 +174,13 @@ var Index = &ice.Context{Name: "lark", Help: "机器人", } if len(arg) == 1 { // 用户列表 - m.Cmdy(m.Prefix(SHIP), USER, arg[0]) + m.Cmdy(m.Prefix(SHIP), USERS, arg[0]) return } // 用户通知 m.Cmdy(m.Prefix(SEND), OPEN_ID, arg[1], arg[2:]) }}, - USER: {Name: "user open_id|mobile|email", Help: "用户", Hand: func(m *ice.Message, c *ice.Context, key string, arg ...string) { + USERS: {Name: "users open_id|mobile|email", Help: "用户", Hand: func(m *ice.Message, c *ice.Context, key string, arg ...string) { if strings.HasPrefix(arg[0], "ou_") { m.Richs(APP, nil, "bot", func(key string, value map[string]interface{}) { data := raw(m, "/open-apis/contact/v1/user/batch_get", "open_ids", arg[0]) @@ -201,12 +201,12 @@ var Index = &ice.Context{Name: "lark", Help: "机器人", } }}, GROUP: {Name: "group chat_id open_id text", Help: "群组", Action: map[string]*ice.Action{ - "user": {Name: "user id", Hand: func(m *ice.Message, arg ...string) { + "users": {Name: "users id", Hand: func(m *ice.Message, arg ...string) { m.Richs(APP, nil, "bot", func(key string, value map[string]interface{}) { data := raw(m, "/open-apis/chat/v4/info", "chat_id", arg[0]) kit.Fetch(kit.Value(data, "data.members"), func(index int, value map[string]interface{}) { - msg := m.Cmd(m.Prefix(USER), value[OPEN_ID]) + msg := m.Cmd(USERS, value[OPEN_ID]) // m.Push("avatar", m.Cmdx(mdb.RENDER, web.RENDER.IMG, msg.Append("avatar_72"))) m.Push("gender", kit.Select("男", "女", msg.Append("gender") == "2")) m.Push(kit.MDB_NAME, msg.Append(kit.MDB_NAME)) @@ -234,7 +234,7 @@ var Index = &ice.Context{Name: "lark", Help: "机器人", } if len(arg) == 1 { // 用户列表 - m.Cmdy(m.Prefix(GROUP), USER, arg[0]) + m.Cmdy(m.Prefix(GROUP), USERS, arg[0]) return } // 用户通知 @@ -328,7 +328,7 @@ var Index = &ice.Context{Name: "lark", Help: "机器人", m.Cmdy(SEND, m.Conf(APP, "meta.duty"), arg) }}, RAND: {Name: "rand", Help: "随机", Hand: func(m *ice.Message, c *ice.Context, key string, arg ...string) { - msg := m.Cmd(GROUP, "user", m.Option(OPEN_CHAT_ID)) + msg := m.Cmd(GROUP, USERS, m.Option(OPEN_CHAT_ID)) list := msg.Appendv("name") if strings.Contains(m.Option("content"), "誰") { m.Echo(strings.Replace(m.Option("content"), "誰", list[rand.Intn(len(list))], 1)) @@ -531,7 +531,7 @@ var Index = &ice.Context{Name: "lark", Help: "机器人", m.Render("redirect", m.Conf(web.SHARE, "meta.domain")) m.Option(aaa.USERNAME, user) - msg := m.Cmd(m.Prefix(USER), user) + msg := m.Cmd(USERS, user) m.Cmd(aaa.USER, mdb.MODIFY, aaa.USERZONE, LARK, aaa.USERNICK, msg.Append("name"), "mobile", msg.Append("mobile"), "avatar_url", msg.Append("avatar_url"), "gender", kit.Select("女", "男", msg.Append("gender") == "1"),