46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
package commands
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
func newDiffCmd() *cobra.Command {
|
|
var (
|
|
current bool
|
|
with string
|
|
collectors string
|
|
output string
|
|
)
|
|
|
|
cmd := &cobra.Command{
|
|
Use: "diff <pack-name>",
|
|
Short: "对比环境差异",
|
|
Long: `对比两个环境之间的差异。`,
|
|
Args: cobra.ExactArgs(1),
|
|
RunE: func(cmd *cobra.Command, args []string) error {
|
|
packName := args[0]
|
|
|
|
if current {
|
|
fmt.Printf("🔍 Comparing \"%s\" with current environment...\n\n", packName)
|
|
} else if with != "" {
|
|
fmt.Printf("🔍 Comparing \"%s\" with \"%s\"...\n\n", packName, with)
|
|
} else {
|
|
return fmt.Errorf("请指定对比目标: --current 或 --with <pack-name>")
|
|
}
|
|
|
|
// TODO: Implement diff logic
|
|
fmt.Println("(diff not yet implemented)")
|
|
return nil
|
|
},
|
|
}
|
|
|
|
cmd.Flags().BoolVar(¤t, "current", false, "与当前环境对比")
|
|
cmd.Flags().StringVar(&with, "with", "", "与另一个 Pack 对比")
|
|
cmd.Flags().StringVarP(&collectors, "collectors", "c", "", "只对比指定采集器")
|
|
cmd.Flags().StringVarP(&output, "output", "o", "table", "输出格式 (table|json|yaml)")
|
|
|
|
return cmd
|
|
}
|