add a terraform version package

Many terraform project packages now want access to the current terraform
version information. Since most packages end up being consumed by the
core terraform package, preventing import cycles becomes difficult.
This commit is contained in:
James Bardin 2017-10-19 19:08:35 -04:00
parent d5b0beac01
commit 3f6a7f3ed2
1 changed files with 36 additions and 0 deletions

36
version/version.go Normal file
View File

@ -0,0 +1,36 @@
// The version package provides a location to set the release versions for all
// packages to consume, without creating import cycles.
//
// This pckage should not import any other terraform packages.
package version
import (
"fmt"
version "github.com/hashicorp/go-version"
)
// The main version number that is being run at the moment.
const Version = "0.10.8"
// A pre-release marker for the version. If this is "" (empty string)
// then it means that it is a final release. Otherwise, this is a pre-release
// such as "dev" (in development), "beta", "rc1", etc.
var Prerelease = "dev"
// SemVersion is an instance of version.Version. This has the secondary
// benefit of verifying during tests and init time that our version is a
// proper semantic version, which should always be the case.
var SemVersion = version.Must(version.NewVersion(Version))
// Header is the header name used to send the current terraform version
// in http requests.
const Header = "Terraform-Version"
// String returns the complete version string, including prerelease
func String() string {
if prerelase != "" {
return fmt.Sprintf("%s-%s", version, prerelease)
}
return version
}