|
|
@@ -8,15 +8,33 @@ import (
|
|
|
)
|
|
|
|
|
|
var cmdUUID = &base.Command{
|
|
|
- UsageLine: "{{.Exec}} uuid",
|
|
|
- Short: "Generate new UUIDs",
|
|
|
+ UsageLine: `{{.Exec}} uuid [-i "example"]`,
|
|
|
+ Short: `Generate UUIDv4 or UUIDv5`,
|
|
|
Long: `
|
|
|
-Generate new UUIDs.
|
|
|
- `,
|
|
|
- Run: executeUUID,
|
|
|
+Generate UUIDv4 or UUIDv5.
|
|
|
+
|
|
|
+UUIDv4 (random): {{.Exec}} uuid
|
|
|
+
|
|
|
+UUIDv5 (from input): {{.Exec}} uuid -i "example"
|
|
|
+`,
|
|
|
}
|
|
|
|
|
|
+func init() {
|
|
|
+ cmdUUID.Run = executeUUID // break init loop
|
|
|
+}
|
|
|
+
|
|
|
+var input = cmdUUID.Flag.String("i", "", "")
|
|
|
+
|
|
|
func executeUUID(cmd *base.Command, args []string) {
|
|
|
- u := uuid.New()
|
|
|
- fmt.Println(u.String())
|
|
|
+ var output string
|
|
|
+ if l := len(*input); l == 0 {
|
|
|
+ u := uuid.New()
|
|
|
+ output = u.String()
|
|
|
+ } else if l <= 30 {
|
|
|
+ u, _ := uuid.ParseString(*input)
|
|
|
+ output = u.String()
|
|
|
+ } else {
|
|
|
+ output = "Input must be within 30 bytes."
|
|
|
+ }
|
|
|
+ fmt.Println(output)
|
|
|
}
|