package version import ( "sort" ) // Sorts a string slice of version number strings using version.CompareSimple() // // Example: // version.Sort([]string{"1.10-dev", "1.0rc1", "1.0", "1.0-dev"}) // Returns []string{"1.0-dev", "1.0rc1", "1.0", "1.10-dev"} // func Sort(versionStrings []string) { versions := versionSlice(versionStrings) sort.Sort(versions) } type versionSlice []string func (s versionSlice) Len() int { return len(s) } func (s versionSlice) Less(i, j int) bool { cmp := CompareSimple(Normalize(s[i]), Normalize(s[j])) if cmp == 0 { return s[i] < s[j] } return cmp < 0 } func (s versionSlice) Swap(i, j int) { tmp := s[j] s[j] = s[i] s[i] = tmp }