123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- package version
- import (
- "regexp"
- "strings"
- )
- const (
- Development = iota
- Alpha
- Beta
- RC
- Stable
- )
- func expandStability(stability string) string {
- stability = strings.ToLower(stability)
- switch stability {
- case "a":
- return "alpha"
- case "b":
- return "beta"
- case "p":
- return "patch"
- case "pl":
- return "patch"
- case "rc":
- return "RC"
- }
- return stability
- }
- func parseStability(version string) string {
- version = regexp.MustCompile(`(?i)#.+$`).ReplaceAllString(version, " ")
- version = strings.ToLower(version)
- if strings.HasPrefix(version, "dev-") || strings.HasSuffix(version, "-dev") {
- return "dev"
- }
- result := RegFind(`(?i)^v?(\d{1,3})(\.\d+)?(\.\d+)?(\.\d+)?`+modifierRegex+`$`, version)
- if result != nil {
- if len(result) > 3 {
- return "dev"
- }
- }
- if result[1] != "" {
- if "beta" == result[1] || "b" == result[1] {
- return "beta"
- }
- if "alpha" == result[1] || "a" == result[1] {
- return "alpha"
- }
- if "rc" == result[1] {
- return "RC"
- }
- }
- return "stable"
- }
- func GetStability(version string) int {
- result := RegFind(`(?i)(stable|RC|beta|alpha|dev)`, Normalize(version))
- if len(result) == 0 {
- return Stable
- }
- switch result[1] {
- case "dev":
- return Development
- case "alpha":
- return Alpha
- case "beta":
- return Beta
- case "RC":
- return RC
- }
- return Stable
- }
|