Parse tags as semver
This commit is contained in:
45
semver.go
Normal file
45
semver.go
Normal file
@ -0,0 +1,45 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
//"fmt"
|
||||
"regexp"
|
||||
|
||||
"github.com/coreos/go-semver/semver"
|
||||
)
|
||||
|
||||
var (
|
||||
rxSemVerPrefix = regexp.MustCompile(`^[^\d]*`)
|
||||
)
|
||||
|
||||
type SemVerTag struct {
|
||||
prefix string
|
||||
version semver.Version
|
||||
}
|
||||
|
||||
// Return a
|
||||
// Returns nil if the tag did not parse as semver
|
||||
func parseTagAsSemVer(tag string) *SemVerTag {
|
||||
var prefix string
|
||||
loc := rxSemVerPrefix.FindStringIndex(tag)
|
||||
if loc != nil {
|
||||
prefix = tag[:loc[1]]
|
||||
tag = tag[loc[1]:]
|
||||
}
|
||||
|
||||
version, err := semver.NewVersion(tag)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
svt := SemVerTag {
|
||||
prefix,
|
||||
*version,
|
||||
}
|
||||
|
||||
return &svt
|
||||
}
|
||||
|
||||
func (SemVerTag) asTag() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user