mirror of
https://github.com/opentofu/opentofu.git
synced 2024-12-25 08:21:07 -06:00
3f6a7f3ed2
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.
37 lines
1.1 KiB
Go
37 lines
1.1 KiB
Go
// 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
|
|
}
|