MCPcopy Create free account
hub / github.com/V2RaySSR/RealityChecker / NewRootCmd

Function NewRootCmd

internal/cmd/root.go:27–62  ·  view source on GitHub ↗

NewRootCmd 创建根命令

()

Source from the content-addressed store, hash-verified

25
26// NewRootCmd 创建根命令
27func NewRootCmd() (*RootCmd, error) {
28 // 加载配置
29 cfg, err := config.LoadConfig("")
30 if err != nil {
31 return nil, fmt.Errorf("加载配置失败: %v", err)
32 }
33
34 // 创建引擎
35 engine := core.NewEngine(cfg)
36 if err := engine.Start(); err != nil {
37 return nil, fmt.Errorf("启动引擎失败: %v", err)
38 }
39
40 // 创建批量管理器(共享引擎)
41 batchManager := batch.NewManagerWithEngine(engine, cfg)
42 if err := batchManager.Start(); err != nil {
43 engine.Stop()
44 return nil, fmt.Errorf("启动批量管理器失败: %v", err)
45 }
46
47 // 设置信号处理
48 ctx, cancel := context.WithCancel(context.Background())
49 go func() {
50 sigChan := make(chan os.Signal, 1)
51 signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
52 <-sigChan
53 cancel()
54 }()
55
56 return &RootCmd{
57 engine: engine,
58 batchManager: batchManager,
59 ctx: ctx,
60 cancel: cancel,
61 }, nil
62}
63
64// Execute 执行命令
65func (r *RootCmd) Execute() {

Callers 1

mainFunction · 0.92

Calls 5

StartMethod · 0.95
StopMethod · 0.95
LoadConfigFunction · 0.92
NewEngineFunction · 0.92
NewManagerWithEngineFunction · 0.92

Tested by

no test coverage detected