/
naming.go
66 lines (54 loc) · 1.75 KB
/
naming.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package docker_utils
import (
"regexp"
log "github.com/sirupsen/logrus"
)
const (
dockerImageNameTagRegexStr = "(?m)([^:]+):?(.*)"
defaultReturn = ""
)
// ParseDockerImageNameAndTag - Retrieve Docker image name and tag from a string
func ParseDockerImageNameAndTag(imageRef string) (dockerImageName, dockerImageTag string) {
var dockerImageNameTagRegex = regexp.MustCompile(dockerImageNameTagRegexStr)
regexMatch := dockerImageNameTagRegex.FindStringSubmatch(imageRef)
dockerImageName = defaultReturn
if len(regexMatch) > 1 {
dockerImageName = regexMatch[1]
} else {
log.Warn("No Docker image name found")
}
dockerImageTag = defaultReturn
if len(regexMatch) > 2 {
dockerImageTag = regexMatch[2]
} else {
log.Debug("No Docker image tag found")
}
return dockerImageName, dockerImageTag
}
// ParseDockerImageName - Retrieve Docker image name from a string
func ParseDockerImageName(imageRef string) string {
var dockerImageNameTagRegex = regexp.MustCompile(dockerImageNameTagRegexStr)
match := dockerImageNameTagRegex.FindStringSubmatch(imageRef)
if len(match) > 1 {
return match[1]
}
log.Warn("No Docker image name found")
return defaultReturn
}
// ParseDockerImageTag - Retrieve Docker image tag from a string
func ParseDockerImageTag(imageRef string) string {
var dockerImageNameTagRegex = regexp.MustCompile(dockerImageNameTagRegexStr)
match := dockerImageNameTagRegex.FindStringSubmatch(imageRef)
if len(match) > 2 {
return match[2]
}
log.Warn("No Docker image tag found")
return defaultReturn
}
// BuildCompleteDockerImage - Build the complete Docker image name from name and tag
func BuildCompleteDockerImage(imageName, imageTag string) string {
if len(imageTag) > 0 {
return imageName + ":" + imageTag
}
return imageName
}