diff options
Diffstat (limited to 'vendor/github.com/hashicorp/terraform/terraform/path.go')
-rw-r--r-- | vendor/github.com/hashicorp/terraform/terraform/path.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/vendor/github.com/hashicorp/terraform/terraform/path.go b/vendor/github.com/hashicorp/terraform/terraform/path.go new file mode 100644 index 0000000..ca99685 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform/terraform/path.go | |||
@@ -0,0 +1,24 @@ | |||
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 | } | ||