46 lines
630 B
Go
46 lines
630 B
Go
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 ""
|
|
}
|
|
|