func parseAndCompareExtensionVersions()

in main/utils.go [48:71]


func parseAndCompareExtensionVersions(lg ExtensionLogger, extensions []string) (extension string, err error) {
	r, _ := regexp.Compile(GCExtensionVersionRegex)

	var versions []string
	var match []string

	for _, ext := range extensions {
		match = r.FindStringSubmatch(ext)
		if len(match) != 3 {
			return "", errors.New("could not parse extension name from: " + ext)
		}
		versions = append(versions, match[2])
	}

	earliestVersion := versions[0]
	for _, v := range versions {
		if version.Compare(v, earliestVersion, "<") {
			earliestVersion = v
		}
	}

	lg.event("Found earliest version of the extension: " + earliestVersion)
	return match[1] + "-" + earliestVersion, nil
}