You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							83 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							83 lines
						
					
					
						
							1.3 KiB
						
					
					
				| 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
 | |
| }
 | |
| 
 |