1
0
mirror of https://shylinux.com/x/icebergs synced 2025-04-26 17:44:05 +08:00
This commit is contained in:
shaoying 2021-10-15 14:47:03 +08:00
parent ce9151ae30
commit e5bac606f1
9 changed files with 36 additions and 32 deletions

View File

@ -22,7 +22,7 @@ func (f *Frame) Spawn(m *ice.Message, c *ice.Context, arg ...string) ice.Server
} }
func (f *Frame) Begin(m *ice.Message, arg ...string) ice.Server { func (f *Frame) Begin(m *ice.Message, arg ...string) ice.Server {
f.p = make(chan *Log, ice.MOD_BUFS) f.p = make(chan *Log, ice.MOD_BUFS)
ice.Log = func(msg *ice.Message, p, l, s string) { ice.Info.Log = func(msg *ice.Message, p, l, s string) {
f.p <- &Log{m: msg, p: p, l: l, s: s} f.p <- &Log{m: msg, p: p, l: l, s: s}
} }
return f return f
@ -132,7 +132,7 @@ var Index = &ice.Context{Name: "log", Help: "日志模块",
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) {
if f, ok := m.Target().Server().(*Frame); ok { if f, ok := m.Target().Server().(*Frame); ok {
// 关闭日志 // 关闭日志
ice.Log = nil ice.Info.Log = nil
close(f.p) close(f.p)
} }
}}, }},

20
info.go
View File

@ -28,11 +28,23 @@ var Info = struct {
UserName string UserName string
} }
Pack map[string][]byte Help string
names map[string]interface{} Pack map[string][]byte
names map[string]interface{}
render map[string]func(*Message, string, ...interface{}) string
Log func(m *Message, p, l, s string)
}{ }{
Pack: map[string][]byte{}, Help: `
names: map[string]interface{}{}, ^_^ 欢迎使用冰山框架 ^_^
^_^ Welcome to Icebergs World ^_^
report: shylinuxc@gmail.com
server: https://shylinux.com
source: https://shylinux.com/x/icebergs
`,
Pack: map[string][]byte{},
names: map[string]interface{}{},
render: map[string]func(*Message, string, ...interface{}) string{},
} }
func Dump(w io.Writer, name string, cb func(string)) bool { func Dump(w io.Writer, name string, cb func(string)) bool {

14
init.go
View File

@ -7,6 +7,7 @@ import (
"time" "time"
kit "shylinux.com/x/toolkits" kit "shylinux.com/x/toolkits"
log "shylinux.com/x/toolkits/logs"
) )
type Frame struct { type Frame struct {
@ -59,7 +60,7 @@ func (f *Frame) Close(m *Message, arg ...string) bool {
var Index = &Context{Name: "ice", Help: "冰山模块", Caches: map[string]*Cache{ var Index = &Context{Name: "ice", Help: "冰山模块", Caches: map[string]*Cache{
CTX_FOLLOW: {Value: ICE}, CTX_STREAM: {Value: SHY}, CTX_STATUS: {Value: CTX_BEGIN}, CTX_FOLLOW: {Value: ICE}, CTX_STREAM: {Value: SHY}, CTX_STATUS: {Value: CTX_BEGIN},
}, Configs: map[string]*Config{ }, Configs: map[string]*Config{
HELP: {Value: kit.Data("index", _help)}, HELP: {Value: kit.Data("index", Info.Help)},
}, Commands: map[string]*Command{ }, Commands: map[string]*Command{
CTX_INIT: {Hand: func(m *Message, c *Context, cmd string, arg ...string) { CTX_INIT: {Hand: func(m *Message, c *Context, cmd string, arg ...string) {
defer m.Cost(CTX_INIT) defer m.Cost(CTX_INIT)
@ -124,7 +125,7 @@ func Run(arg ...string) string {
switch kit.Select("", arg, 0) { switch kit.Select("", arg, 0) {
case "space", "serve": case "space", "serve":
if _log_disable = false; frame.Begin(Pulse.Spawn(), arg...).Start(Pulse, arg...) { if log.LogDisable = false; frame.Begin(Pulse.Spawn(), arg...).Start(Pulse, arg...) {
frame.Close(Pulse.Spawn(), arg...) frame.Close(Pulse.Spawn(), arg...)
} }
@ -142,12 +143,3 @@ func Run(arg ...string) string {
return Pulse.Result() return Pulse.Result()
} }
var _help = `
^_^ 欢迎使用冰山框架 ^_^
^_^ Welcome to Icebergs World ^_^
report: shylinuxc@gmail.com
server: https://shylinux.com
source: https://shylinux.com/x/icebergs
`

View File

@ -10,15 +10,12 @@ import (
log "shylinux.com/x/toolkits/logs" log "shylinux.com/x/toolkits/logs"
) )
var _log_disable = true
var Log func(m *Message, p, l, s string)
func (m *Message) log(level string, str string, arg ...interface{}) *Message { func (m *Message) log(level string, str string, arg ...interface{}) *Message {
if _log_disable { if log.LogDisable {
return m // 禁用日志 return m // 禁用日志
} }
if str = strings.TrimSpace(kit.Format(str, arg...)); Log != nil { if str = strings.TrimSpace(kit.Format(str, arg...)); Info.Log != nil {
Log(m, m.Format(kit.MDB_PREFIX), level, str) // 日志分流 Info.Log(m, m.Format(kit.MDB_PREFIX), level, str) // 日志分流
} }
// 日志颜色 // 日志颜色

View File

@ -11,6 +11,7 @@ import (
"shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/aaa"
"shylinux.com/x/icebergs/base/ctx" "shylinux.com/x/icebergs/base/ctx"
"shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/mdb"
psh "shylinux.com/x/icebergs/base/ssh"
"shylinux.com/x/icebergs/base/tcp" "shylinux.com/x/icebergs/base/tcp"
kit "shylinux.com/x/toolkits" kit "shylinux.com/x/toolkits"
) )
@ -66,7 +67,7 @@ func _ssh_watch(m *ice.Message, meta map[string]string, h string, input io.Reade
const CHANNEL = "channel" const CHANNEL = "channel"
func init() { func init() {
Index.Merge(&ice.Context{ psh.Index.Merge(&ice.Context{
Configs: map[string]*ice.Config{ Configs: map[string]*ice.Config{
CHANNEL: {Name: "channel", Help: "通道", Value: kit.Data()}, CHANNEL: {Name: "channel", Help: "通道", Value: kit.Data()},
}, },

View File

@ -16,6 +16,7 @@ import (
"shylinux.com/x/icebergs/base/gdb" "shylinux.com/x/icebergs/base/gdb"
"shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/mdb"
"shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/nfs"
psh "shylinux.com/x/icebergs/base/ssh"
"shylinux.com/x/icebergs/base/tcp" "shylinux.com/x/icebergs/base/tcp"
kit "shylinux.com/x/toolkits" kit "shylinux.com/x/toolkits"
) )
@ -150,10 +151,11 @@ func _ssh_conn(m *ice.Message, cb func(*ssh.Client), arg ...string) {
tcp.PORT, m.Option(tcp.PORT), tcp.HOST, m.Option(tcp.HOST), arg) tcp.PORT, m.Option(tcp.PORT), tcp.HOST, m.Option(tcp.HOST), arg)
} }
const SSH = "ssh"
const CONNECT = "connect" const CONNECT = "connect"
func init() { func init() {
Index.Merge(&ice.Context{ psh.Index.Merge(&ice.Context{
Configs: map[string]*ice.Config{ Configs: map[string]*ice.Config{
CONNECT: {Name: CONNECT, Help: "连接", Value: kit.Data()}, CONNECT: {Name: CONNECT, Help: "连接", Value: kit.Data()},
}, },

View File

@ -10,14 +10,15 @@ import (
"path" "path"
"strings" "strings"
"golang.org/x/crypto/ssh"
ice "shylinux.com/x/icebergs" ice "shylinux.com/x/icebergs"
"shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/aaa"
"shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/cli"
"shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/mdb"
"shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/nfs"
psh "shylinux.com/x/icebergs/base/ssh"
"shylinux.com/x/icebergs/base/tcp" "shylinux.com/x/icebergs/base/tcp"
kit "shylinux.com/x/toolkits" kit "shylinux.com/x/toolkits"
"golang.org/x/crypto/ssh"
) )
func _ssh_meta(conn ssh.ConnMetadata) map[string]string { func _ssh_meta(conn ssh.ConnMetadata) map[string]string {
@ -99,7 +100,7 @@ const (
const SERVICE = "service" const SERVICE = "service"
func init() { func init() {
Index.Merge(&ice.Context{ psh.Index.Merge(&ice.Context{
Configs: map[string]*ice.Config{ Configs: map[string]*ice.Config{
SERVICE: {Name: SERVICE, Help: "服务", Value: kit.Data( SERVICE: {Name: SERVICE, Help: "服务", Value: kit.Data(
WELCOME, "\r\nwelcome to context world\r\n", WELCOME, "\r\nwelcome to context world\r\n",

View File

@ -7,6 +7,7 @@ import (
ice "shylinux.com/x/icebergs" ice "shylinux.com/x/icebergs"
"shylinux.com/x/icebergs/base/ctx" "shylinux.com/x/icebergs/base/ctx"
"shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/mdb"
psh "shylinux.com/x/icebergs/base/ssh"
"shylinux.com/x/icebergs/base/tcp" "shylinux.com/x/icebergs/base/tcp"
kit "shylinux.com/x/toolkits" kit "shylinux.com/x/toolkits"
) )
@ -57,7 +58,7 @@ const (
const SESSION = "session" const SESSION = "session"
func init() { func init() {
Index.Merge(&ice.Context{ psh.Index.Merge(&ice.Context{
Configs: map[string]*ice.Config{ Configs: map[string]*ice.Config{
SESSION: {Name: SESSION, Help: "会话", Value: kit.Data()}, SESSION: {Name: SESSION, Help: "会话", Value: kit.Data()},
}, },

View File

@ -8,13 +8,11 @@ import (
kit "shylinux.com/x/toolkits" kit "shylinux.com/x/toolkits"
) )
var renderList = map[string]func(*Message, string, ...interface{}) string{}
func AddRender(key string, render func(*Message, string, ...interface{}) string) { func AddRender(key string, render func(*Message, string, ...interface{}) string) {
renderList[key] = render Info.render[key] = render
} }
func Render(m *Message, cmd string, args ...interface{}) string { func Render(m *Message, cmd string, args ...interface{}) string {
if render, ok := renderList[cmd]; ok { if render, ok := Info.render[cmd]; ok {
m.Debug("render: %v %v", cmd, kit.FileLine(render, 3)) m.Debug("render: %v %v", cmd, kit.FileLine(render, 3))
return render(m, cmd, args...) return render(m, cmd, args...)
} }