github.com/richardbowden/terraform@v0.6.12-0.20160901200758-30ea22c25211/terraform/path.go (about) 1 package terraform 2 3 import ( 4 "crypto/md5" 5 "encoding/hex" 6 ) 7 8 // PathCacheKey returns a cache key for a module path. 9 // 10 // TODO: test 11 func PathCacheKey(path []string) string { 12 // There is probably a better way to do this, but this is working for now. 13 // We just create an MD5 hash of all the MD5 hashes of all the path 14 // elements. This gets us the property that it is unique per ordering. 15 hash := md5.New() 16 for _, p := range path { 17 single := md5.Sum([]byte(p)) 18 if _, err := hash.Write(single[:]); err != nil { 19 panic(err) 20 } 21 } 22 23 return hex.EncodeToString(hash.Sum(nil)) 24 }