github.com/pulumi/terraform@v1.4.0/version/version.go (about)

     1  // The version package provides a location to set the release versions for all
     2  // packages to consume, without creating import cycles.
     3  //
     4  // This package should not import any other terraform packages.
     5  package version
     6  
     7  import (
     8  	"fmt"
     9  
    10  	version "github.com/hashicorp/go-version"
    11  )
    12  
    13  // The main version number that is being run at the moment.
    14  var Version = "1.4.1"
    15  
    16  // A pre-release marker for the version. If this is "" (empty string)
    17  // then it means that it is a final release. Otherwise, this is a pre-release
    18  // such as "dev" (in development), "beta", "rc1", etc.
    19  var Prerelease = "dev"
    20  
    21  // SemVer is an instance of version.Version. This has the secondary
    22  // benefit of verifying during tests and init time that our version is a
    23  // proper semantic version, which should always be the case.
    24  var SemVer *version.Version
    25  
    26  func init() {
    27  	SemVer = version.Must(version.NewVersion(Version))
    28  }
    29  
    30  // Header is the header name used to send the current terraform version
    31  // in http requests.
    32  const Header = "Terraform-Version"
    33  
    34  // String returns the complete version string, including prerelease
    35  func String() string {
    36  	if Prerelease != "" {
    37  		return fmt.Sprintf("%s-%s", Version, Prerelease)
    38  	}
    39  	return Version
    40  }