40 lines
969 B
Go
40 lines
969 B
Go
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)
|
||
}
|