mirror of https://github.com/XTLS/Xray-core
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
772 B
40 lines
772 B
package all |
|
|
|
import ( |
|
"fmt" |
|
|
|
"github.com/xtls/xray-core/common/uuid" |
|
"github.com/xtls/xray-core/main/commands/base" |
|
) |
|
|
|
var cmdUUID = &base.Command{ |
|
UsageLine: `{{.Exec}} uuid [-i "example"]`, |
|
Short: `Generate UUIDv4 or UUIDv5`, |
|
Long: ` |
|
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) { |
|
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) |
|
}
|
|
|