-
Notifications
You must be signed in to change notification settings - Fork 0
/
common.go
39 lines (31 loc) · 1003 Bytes
/
common.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
package common
import (
"errors"
"regexp"
log "github.com/Sirupsen/logrus"
)
var (
//ErrParseVersionFailed failed to parse version from filename
ErrParseVersionFailed = errors.New("Failed to parse version from filename")
)
//ParseVersionFromFilename this parses the version string out of the filename
func ParseVersionFromFilename(filename string) (string, error) {
log.Debugln("ParseVersionFromFilename ENTER")
log.Debugln("filename:", filename)
r, err := regexp.Compile(".*([0-9]+\\.[0-9]+[\\.\\-][0-9]+\\.[0-9]+).*")
if err != nil {
log.Debugln("regexp is invalid")
log.Debugln("ParseVersionFromFilename LEAVE")
return "", err
}
strings := r.FindStringSubmatch(filename)
if strings == nil || len(strings) < 2 {
log.Debugln("Unable to find version from string")
log.Debugln("ParseVersionFromFilename LEAVE")
return "", ErrParseVersionFailed
}
version := strings[1]
log.Debugln("Found:", version)
log.Debugln("ParseVersionFromFilename LEAVE")
return version, nil
}