From 8ab412184ff703aa2e7fb2dbaa04a7a97be2162f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E5=B9=BF?= Date: Thu, 5 Jun 2025 09:49:00 +0800 Subject: [PATCH] add comments --- io.go | 12 ++++++++++++ main.go | 21 +++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/io.go b/io.go index 1f1e16b..513c563 100644 --- a/io.go +++ b/io.go @@ -5,10 +5,22 @@ import ( "net" ) +// Write 将给定的值序列化为JSON并写入网络连接 +// 参数: +// conn: 网络连接对象 +// v: 要写入的值 +// 返回: +// error: 写入过程中发生的错误(如果有) func Write[T any](conn net.Conn, v T) error { return json.NewEncoder(conn).Encode(v) } +// Read 从网络连接读取JSON数据并反序列化为指定类型 +// 参数: +// conn: 网络连接对象 +// 返回: +// *T: 反序列化后的值指针 +// error: 读取或反序列化过程中发生的错误(如果有) func Read[T any](conn net.Conn) (*T, error) { // 再读报文内容 diff --git a/main.go b/main.go index 100f8d6..0d1c8d6 100644 --- a/main.go +++ b/main.go @@ -64,6 +64,11 @@ type CmdHandler interface { Usage() string } +// Listen 启动守护进程并监听Unix socket上的连接 +// 参数: +// c: CmdDaemon 实例指针 +// 返回: +// error: 监听过程中发生的错误(如果有) func (c *CmdDaemon) Listen() error { // 删除已存在的 socket 文件(如果存在) if err := os.Remove(c.SocketPath); err != nil && !os.IsNotExist(err) { @@ -120,6 +125,11 @@ func (c *CmdDaemon) Listen() error { } } +// Usage 生成命令使用说明 +// 参数: +// c: CmdDaemon 实例指针 +// 返回: +// string: 命令使用说明字符串 func (c *CmdDaemon) Usage() string { usage := fmt.Sprintf("Usage: %s [options] [args...]\n\n", c.Name) usage += "Options:\n" @@ -135,10 +145,21 @@ func (c *CmdDaemon) RegisterCmd(cmd string, handler CmdHandler) { c.cmds[cmd] = handler } +// isDebug 检查给定的命令是否是调试标志 +// 参数: +// c: CmdDaemon 实例指针 +// cmd: 要检查的命令字符串 +// 返回: +// bool: 如果是调试标志返回true,否则返回false func (c *CmdDaemon) isDebug(cmd string) bool { return cmd == "--debug" || cmd == "-d" } +// Run 执行客户端命令并通过Unix socket与守护进程通信 +// 参数: +// c: CmdDaemon 实例指针 +// 返回: +// error: 执行过程中发生的错误(如果有) func (c *CmdDaemon) Run() error { // 从命令参数中解析出是否debug 子命令和剩余参数字符串 args := os.Args[1:]