mirror of
				https://github.com/usememos/memos.git
				synced 2025-11-04 12:27:35 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			61 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package version
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
	"strings"
 | 
						|
 | 
						|
	"golang.org/x/mod/semver"
 | 
						|
)
 | 
						|
 | 
						|
// Version is the service current released version.
 | 
						|
// Semantic versioning: https://semver.org/
 | 
						|
var Version = "0.22.3"
 | 
						|
 | 
						|
// DevVersion is the service current development version.
 | 
						|
var DevVersion = "0.22.3"
 | 
						|
 | 
						|
func GetCurrentVersion(mode string) string {
 | 
						|
	if mode == "dev" || mode == "demo" {
 | 
						|
		return DevVersion
 | 
						|
	}
 | 
						|
	return Version
 | 
						|
}
 | 
						|
 | 
						|
func GetMinorVersion(version string) string {
 | 
						|
	versionList := strings.Split(version, ".")
 | 
						|
	if len(versionList) < 3 {
 | 
						|
		return ""
 | 
						|
	}
 | 
						|
	return versionList[0] + "." + versionList[1]
 | 
						|
}
 | 
						|
 | 
						|
func GetSchemaVersion(version string) string {
 | 
						|
	minorVersion := GetMinorVersion(version)
 | 
						|
	return minorVersion + ".0"
 | 
						|
}
 | 
						|
 | 
						|
// IsVersionGreaterOrEqualThan returns true if version is greater than or equal to target.
 | 
						|
func IsVersionGreaterOrEqualThan(version, target string) bool {
 | 
						|
	return semver.Compare(fmt.Sprintf("v%s", version), fmt.Sprintf("v%s", target)) > -1
 | 
						|
}
 | 
						|
 | 
						|
// IsVersionGreaterThan returns true if version is greater than target.
 | 
						|
func IsVersionGreaterThan(version, target string) bool {
 | 
						|
	return semver.Compare(fmt.Sprintf("v%s", version), fmt.Sprintf("v%s", target)) > 0
 | 
						|
}
 | 
						|
 | 
						|
type SortVersion []string
 | 
						|
 | 
						|
func (s SortVersion) Len() int {
 | 
						|
	return len(s)
 | 
						|
}
 | 
						|
 | 
						|
func (s SortVersion) Swap(i, j int) {
 | 
						|
	s[i], s[j] = s[j], s[i]
 | 
						|
}
 | 
						|
 | 
						|
func (s SortVersion) Less(i, j int) bool {
 | 
						|
	v1 := fmt.Sprintf("v%s", s[i])
 | 
						|
	v2 := fmt.Sprintf("v%s", s[j])
 | 
						|
	return semver.Compare(v1, v2) == -1
 | 
						|
}
 |