func()

in ecs-cli/modules/cli/compose/project/project_version.go [14:43]


func (p *ecsProject) checkComposeVersion() (string, error) {
	var composeVersion string
	if len(p.ecsContext.ComposeFiles) == 0 {
		return "", fmt.Errorf("No Compose files found")
	}
	for _, file := range p.ecsContext.ComposeFiles {
		fileVersion, err := getFileVersion(file)
		if err != nil {
			return "", err
		}
		if composeVersion != "" && composeVersion != fileVersion {
			return "", fmt.Errorf("Compose files must be of the same version. Found: %s and %s", composeVersion, fileVersion)
		}
		composeVersion = fileVersion
	}

	// if minor version of 1 or 2 found, log warning
	match, _ := regexp.MatchString("^.+\\..", composeVersion)
	if composeVersion != "" && match {
		versionNumber, err := strconv.ParseFloat(composeVersion, 64)
		if err != nil {
			return "", err
		}
		if 0 < versionNumber && versionNumber < 3 {
			logrus.Warnf("Minor version (%s) detected. Please format to include only major version (%d).", composeVersion, int(versionNumber))
		}
	}

	return composeVersion, nil
}