root.go
1 // Copyright (c) 2024-2026 Tencent Zhuque Lab. All rights reserved. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 // 15 // Requirement: Any integration or derivative work must explicitly attribute 16 // Tencent Zhuque Lab (https://github.com/Tencent/AI-Infra-Guard) in its 17 // documentation or user interface, as detailed in the NOTICE file. 18 19 // Package cmd 实现命令行界面 20 package cmd 21 22 import ( 23 "github.com/Tencent/AI-Infra-Guard/internal/gologger" 24 "github.com/Tencent/AI-Infra-Guard/internal/options" 25 "github.com/spf13/cobra" 26 ) 27 28 // rootCmd 表示基础命令 29 var rootCmd = &cobra.Command{ 30 Use: "ai-infra-guard", 31 Short: "AI基础设施安全检测工具", 32 Long: `AI-Infra-Guard是一个针对AI基础设施的安全检测工具,包含扫描、MCP检测功能,支持webui操作。`, 33 } 34 35 // Execute 添加所有子命令到根命令并设置标志 36 // 这由main.main()调用,仅调用一次 37 func Execute() { 38 options.ShowBanner() 39 if err := rootCmd.Execute(); err != nil { 40 gologger.Fatalf("执行命令失败: %s\n", err.Error()) 41 } 42 } 43 44 func init() { 45 // 在这里,您可以定义根命令的标志和配置设置 46 // Cobra支持持久性标志,如果在这里定义的话,它们将对所有子命令可用 47 // rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.cobra.yaml)") 48 49 // Cobra也支持本地标志,只在直接调用此操作时运行 50 // rootCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle") 51 }