github.com/raghuse92/packer@v1.3.2/common/random/string.go (about) 1 package random 2 3 import ( 4 "math/rand" 5 "os" 6 "time" 7 ) 8 9 var ( 10 PossibleNumbers = "0123456789" 11 PossibleLowerCase = "abcdefghijklmnopqrstuvwxyz" 12 PossibleUpperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 13 14 PossibleAlphaNum = PossibleNumbers + PossibleLowerCase + PossibleUpperCase 15 PossibleAlphaNumLower = PossibleNumbers + PossibleLowerCase 16 PossibleAlphaNumUpper = PossibleNumbers + PossibleUpperCase 17 ) 18 19 var rnd = rand.New(rand.NewSource(time.Now().UnixNano() + int64(os.Getpid()))) 20 21 func Numbers(length int) string { return String(PossibleNumbers, length) } 22 func AlphaNum(length int) string { return String(PossibleAlphaNum, length) } 23 func AlphaNumLower(length int) string { return String(PossibleAlphaNumLower, length) } 24 func AlphaNumUpper(length int) string { return String(PossibleAlphaNumUpper, length) } 25 26 func String(chooseFrom string, length int) (randomString string) { 27 cflen := len(chooseFrom) 28 bytes := make([]byte, length) 29 for i := range bytes { 30 bytes[i] = chooseFrom[rnd.Intn(cflen)] 31 } 32 return string(bytes) 33 }