change package

This commit is contained in:
程广 2025-06-05 10:02:19 +08:00
parent 8ab412184f
commit 6ab1f93805
3 changed files with 37 additions and 18 deletions

View File

@ -1,4 +1,4 @@
package main
package gocmdDaemon
import (
"encoding/json"

20
io.go
View File

@ -1,4 +1,4 @@
package main
package gocmdDaemon
import (
"encoding/json"
@ -7,20 +7,26 @@ import (
// Write 将给定的值序列化为JSON并写入网络连接
// 参数:
// conn: 网络连接对象
// v: 要写入的值
//
// conn: 网络连接对象
// v: 要写入的值
//
// 返回:
// error: 写入过程中发生的错误(如果有)
//
// error: 写入过程中发生的错误(如果有)
func Write[T any](conn net.Conn, v T) error {
return json.NewEncoder(conn).Encode(v)
}
// Read 从网络连接读取JSON数据并反序列化为指定类型
// 参数:
// conn: 网络连接对象
//
// conn: 网络连接对象
//
// 返回:
// *T: 反序列化后的值指针
// error: 读取或反序列化过程中发生的错误(如果有)
//
// *T: 反序列化后的值指针
// error: 读取或反序列化过程中发生的错误(如果有)
func Read[T any](conn net.Conn) (*T, error) {
// 再读报文内容

33
main.go
View File

@ -1,4 +1,4 @@
package main
package gocmdDaemon
import (
"encoding/json"
@ -66,9 +66,12 @@ type CmdHandler interface {
// Listen 启动守护进程并监听Unix socket上的连接
// 参数:
// c: CmdDaemon 实例指针
//
// c: CmdDaemon 实例指针
//
// 返回:
// error: 监听过程中发生的错误(如果有)
//
// error: 监听过程中发生的错误(如果有)
func (c *CmdDaemon) Listen() error {
// 删除已存在的 socket 文件(如果存在)
if err := os.Remove(c.SocketPath); err != nil && !os.IsNotExist(err) {
@ -127,9 +130,12 @@ func (c *CmdDaemon) Listen() error {
// Usage 生成命令使用说明
// 参数:
// c: CmdDaemon 实例指针
//
// c: CmdDaemon 实例指针
//
// 返回:
// string: 命令使用说明字符串
//
// string: 命令使用说明字符串
func (c *CmdDaemon) Usage() string {
usage := fmt.Sprintf("Usage: %s [options] <command> [args...]\n\n", c.Name)
usage += "Options:\n"
@ -147,19 +153,26 @@ func (c *CmdDaemon) RegisterCmd(cmd string, handler CmdHandler) {
// isDebug 检查给定的命令是否是调试标志
// 参数:
// c: CmdDaemon 实例指针
// cmd: 要检查的命令字符串
//
// c: CmdDaemon 实例指针
// cmd: 要检查的命令字符串
//
// 返回:
// bool: 如果是调试标志返回true否则返回false
//
// bool: 如果是调试标志返回true否则返回false
func (c *CmdDaemon) isDebug(cmd string) bool {
return cmd == "--debug" || cmd == "-d"
}
// Run 执行客户端命令并通过Unix socket与守护进程通信
// 参数:
// c: CmdDaemon 实例指针
//
// c: CmdDaemon 实例指针
//
// 返回:
// error: 执行过程中发生的错误(如果有)
//
// error: 执行过程中发生的错误(如果有)
func (c *CmdDaemon) Run() error {
// 从命令参数中解析出是否debug 子命令和剩余参数字符串
args := os.Args[1:]