mirror of
https://github.com/XTLS/Xray-core.git
synced 2024-12-23 22:19:49 +00:00
parent
157918859f
commit
822afb0cc8
@ -50,6 +50,8 @@ func (u *UUID) Equals(another *UUID) bool {
|
||||
func New() UUID {
|
||||
var uuid UUID
|
||||
common.Must2(rand.Read(uuid.Bytes()))
|
||||
uuid[6] = (uuid[6] & 0x0f) | (4 << 4)
|
||||
uuid[8] = (uuid[8]&(0xff>>2) | (0x02 << 6))
|
||||
return uuid
|
||||
}
|
||||
|
||||
|
@ -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 executeUUID(cmd *base.Command, args []string) {
|
||||
u := uuid.New()
|
||||
fmt.Println(u.String())
|
||||
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)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user