mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-11-04 04:28:08 +00:00 
			
		
		
		
	* add sys/internal/ui/version path * add read capability for sys/internal/ui/version in default policy * add changelog file * doc: add api-docs page for sys/internal/ui/version * add godoc for pathInternalUIVersion function * add tests for functions in version package * remove unreachable code * use closure to restore version at end of test function * use an example version in sample response * Update website/content/api-docs/system/internal-ui-version.mdx Co-authored-by: Sarah Chavis <62406755+schavis@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Sarah Chavis <62406755+schavis@users.noreply.github.com> * Update website/content/api-docs/system/internal-ui-version.mdx Co-authored-by: Sarah Chavis <62406755+schavis@users.noreply.github.com> * add copyright header to version_test.go --------- Co-authored-by: Sarah Chavis <62406755+schavis@users.noreply.github.com>
		
			
				
	
	
		
			80 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright (c) HashiCorp, Inc.
 | 
						|
// SPDX-License-Identifier: BUSL-1.1
 | 
						|
 | 
						|
package version
 | 
						|
 | 
						|
import (
 | 
						|
	"bytes"
 | 
						|
	"fmt"
 | 
						|
)
 | 
						|
 | 
						|
type VersionInfo struct {
 | 
						|
	Revision          string `json:"revision,omitempty"`
 | 
						|
	Version           string `json:"version,omitempty"`
 | 
						|
	VersionPrerelease string `json:"version_prerelease,omitempty"`
 | 
						|
	VersionMetadata   string `json:"version_metadata,omitempty"`
 | 
						|
	BuildDate         string `json:"build_date,omitempty"`
 | 
						|
}
 | 
						|
 | 
						|
func GetVersion() *VersionInfo {
 | 
						|
	ver := Version
 | 
						|
	rel := VersionPrerelease
 | 
						|
	md := VersionMetadata
 | 
						|
	if GitDescribe != "" {
 | 
						|
		ver = GitDescribe
 | 
						|
	}
 | 
						|
 | 
						|
	return &VersionInfo{
 | 
						|
		Revision:          GitCommit,
 | 
						|
		Version:           ver,
 | 
						|
		VersionPrerelease: rel,
 | 
						|
		VersionMetadata:   md,
 | 
						|
		BuildDate:         BuildDate,
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (c *VersionInfo) VersionNumber() string {
 | 
						|
	if Version == "unknown" && VersionPrerelease == "unknown" {
 | 
						|
		return "(version unknown)"
 | 
						|
	}
 | 
						|
 | 
						|
	version := c.Version
 | 
						|
 | 
						|
	if c.VersionPrerelease != "" {
 | 
						|
		version = fmt.Sprintf("%s-%s", version, c.VersionPrerelease)
 | 
						|
	}
 | 
						|
 | 
						|
	if c.VersionMetadata != "" {
 | 
						|
		version = fmt.Sprintf("%s+%s", version, c.VersionMetadata)
 | 
						|
	}
 | 
						|
 | 
						|
	return version
 | 
						|
}
 | 
						|
 | 
						|
func (c *VersionInfo) FullVersionNumber(rev bool) string {
 | 
						|
	var versionString bytes.Buffer
 | 
						|
 | 
						|
	if Version == "unknown" && VersionPrerelease == "unknown" {
 | 
						|
		return "Vault (version unknown)"
 | 
						|
	}
 | 
						|
 | 
						|
	fmt.Fprintf(&versionString, "Vault v%s", c.Version)
 | 
						|
	if c.VersionPrerelease != "" {
 | 
						|
		fmt.Fprintf(&versionString, "-%s", c.VersionPrerelease)
 | 
						|
	}
 | 
						|
 | 
						|
	if c.VersionMetadata != "" {
 | 
						|
		fmt.Fprintf(&versionString, "+%s", c.VersionMetadata)
 | 
						|
	}
 | 
						|
 | 
						|
	if rev && c.Revision != "" {
 | 
						|
		fmt.Fprintf(&versionString, " (%s)", c.Revision)
 | 
						|
	}
 | 
						|
 | 
						|
	if c.BuildDate != "" {
 | 
						|
		fmt.Fprintf(&versionString, ", built %s", c.BuildDate)
 | 
						|
	}
 | 
						|
 | 
						|
	return versionString.String()
 | 
						|
}
 |