This commit is contained in:
huangzhenpc
2025-05-23 23:08:02 +08:00
parent 9444bf4802
commit a8d25054fc
14 changed files with 2277 additions and 0 deletions

58
cmd/list_users/main.go Normal file
View File

@@ -0,0 +1,58 @@
package main
import (
"flag"
"fmt"
"os"
"stalwart_client/pkg/api"
)
func main() {
// 解析命令行参数
limitPtr := flag.Int("l", 100, "最大返回结果数量")
pagePtr := flag.Int("p", 1, "页码")
_ = flag.String("q", "", "搜索关键词") // 暂未实现搜索功能,保留参数
authTypePtr := flag.String("a", "basic", "认证方式: basic(基本认证)或apikey(API Key认证)")
authUserPtr := flag.String("u", "", "基本认证用户名")
authPassPtr := flag.String("P", "", "基本认证密码")
apiKeyPtr := flag.String("k", "", "API Key")
configPtr := flag.String("c", "", "配置文件路径")
flag.Parse()
// 加载配置
config, err := api.LoadConfig(*configPtr)
if err != nil {
fmt.Printf("加载配置失败: %v\n", err)
os.Exit(1)
}
// 创建客户端
client := api.NewClient(config)
// 确定认证类型
var authType api.AuthType
if *authTypePtr == "apikey" {
authType = api.APIKeyAuth
} else {
authType = api.BasicAuth
}
// 获取用户列表
userList, err := client.ListUsers(
authType,
*authUserPtr,
*authPassPtr,
*apiKeyPtr,
*limitPtr,
*pagePtr,
)
if err != nil {
fmt.Printf("获取用户列表失败: %v\n", err)
os.Exit(1)
}
// 格式化显示结果
api.FormatUserList(userList)
}