github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/internal/version/version.go (about)

     1  package version
     2  
     3  import (
     4  	"github.com/ActiveState/cli/internal/constants"
     5  	"github.com/ActiveState/cli/internal/errs"
     6  	"github.com/blang/semver"
     7  )
     8  
     9  func ParseStateToolVersion(version string) (semver.Version, error) {
    10  	ver, err := semver.Parse(version)
    11  	if err != nil {
    12  		return ver, errs.Wrap(err, "Failed to parse State Tool version %s", version)
    13  	}
    14  
    15  	return ver, nil
    16  }
    17  
    18  func IsMultiFileUpdate(version semver.Version) bool {
    19  	// We ignore pre-release tags for this version test, as our attaching of `-SHA123455` is technically interpreted as a pre-release
    20  	testVer := version
    21  	testVer.Pre = nil
    22  	return testVer.GTE(semver.MustParse(constants.FirstMultiFileStateToolVersion)) || (version.Major == 0 && version.Minor == 0 && version.Patch == 0)
    23  }