mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
f2614f2107
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
47 lines
965 B
Go
47 lines
965 B
Go
package store
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
// CreateEndpoints creates a list of endpoints given the right scheme
|
|
func CreateEndpoints(addrs []string, scheme string) (entries []string) {
|
|
for _, addr := range addrs {
|
|
entries = append(entries, scheme+"://"+addr)
|
|
}
|
|
return entries
|
|
}
|
|
|
|
// Normalize the key for each store to the form:
|
|
//
|
|
// /path/to/key
|
|
//
|
|
func Normalize(key string) string {
|
|
return "/" + join(SplitKey(key))
|
|
}
|
|
|
|
// GetDirectory gets the full directory part of
|
|
// the key to the form:
|
|
//
|
|
// /path/to/
|
|
//
|
|
func GetDirectory(key string) string {
|
|
parts := SplitKey(key)
|
|
parts = parts[:len(parts)-1]
|
|
return "/" + join(parts)
|
|
}
|
|
|
|
// SplitKey splits the key to extract path informations
|
|
func SplitKey(key string) (path []string) {
|
|
if strings.Contains(key, "/") {
|
|
path = strings.Split(key, "/")
|
|
} else {
|
|
path = []string{key}
|
|
}
|
|
return path
|
|
}
|
|
|
|
// join the path parts with '/'
|
|
func join(parts []string) string {
|
|
return strings.Join(parts, "/")
|
|
}
|