Parse tags as semver

This commit is contained in:
2020-11-07 14:31:50 +01:00
parent 3dd61d2f91
commit 019f0a0bf5
5 changed files with 131 additions and 24 deletions

45
semver.go Normal file
View 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 ""
}