package cmd import ( "fmt" "archgrid.xyz/ag/toolsbox/serial_code/hail" "github.com/spf13/cobra" ) var ( hailHostSerial int64 hailPrefix string ) var hailCmd = &cobra.Command{ Use: "hail", Short: "使用冰雹ID生成算法生成一个唯一ID", Run: hailGenerateExecute, } func hailGenerateExecute(cmd *cobra.Command, args []string) { hail.Initialize(hailHostSerial) engine, err := hail.Get() if err != nil { fmt.Printf("未能初始化冰雹ID生成器: %s\n", err) return } if len(hailPrefix) > 0 { fmt.Printf("生成的ID:%s\n", engine.GeneratePrefixedString(hailPrefix)) } else { fmt.Printf("生成的ID:%s\n", engine.GenerateString()) } } func init() { hailCmd.Flags().Int64VarP(&hailHostSerial, "host-serial", "s", 1, "设定冰雹ID生成器的主机编号,默认为1。") hailCmd.Flags().StringVarP(&hailPrefix, "prefix", "p", "", "设定生成的ID的前缀内容,默认为空。") rootCmd.AddCommand(hailCmd) }