|  | 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
}
 |