1 Star 0 Fork 0

SuperManager/leaf3389

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
console.go 1.35 KB
一键复制 编辑 原始数据 按行查看 历史
黄柠檬 提交于 2024-08-07 15:36 +08:00 . init
package console
import (
"bufio"
"github.com/name5566/leaf/conf"
"github.com/name5566/leaf/network"
"math"
"strconv"
"strings"
)
var server *network.TCPServer
func Init() {
if conf.ConsolePort == 0 {
return
}
server = new(network.TCPServer)
server.Addr = "localhost:" + strconv.Itoa(conf.ConsolePort)
server.MaxConnNum = int(math.MaxInt32)
server.PendingWriteNum = 100
server.NewAgent = newAgent
server.Start()
}
func Destroy() {
if server != nil {
server.Close()
}
}
type Agent struct {
conn *network.TCPConn
reader *bufio.Reader
}
func newAgent(conn *network.TCPConn) network.Agent {
a := new(Agent)
a.conn = conn
a.reader = bufio.NewReader(conn)
return a
}
func (a *Agent) Run() {
for {
if conf.ConsolePrompt != "" {
a.conn.Write([]byte(conf.ConsolePrompt))
}
line, err := a.reader.ReadString('\n')
if err != nil {
break
}
line = strings.TrimSuffix(line[:len(line)-1], "\r")
args := strings.Fields(line)
if len(args) == 0 {
continue
}
if args[0] == "quit" {
break
}
var c Command
for _, _c := range commands {
if _c.name() == args[0] {
c = _c
break
}
}
if c == nil {
a.conn.Write([]byte("command not found, try `help` for help\r\n"))
continue
}
output := c.run(args[1:])
if output != "" {
a.conn.Write([]byte(output + "\r\n"))
}
}
}
func (a *Agent) OnClose() {}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/kongkekongke/leaf3389.git
git@gitee.com:kongkekongke/leaf3389.git
kongkekongke
leaf3389
leaf3389
v1.0.1

搜索帮助