50 lines
1.5 KiB
Go
50 lines
1.5 KiB
Go
// Copyright 2026 Alibaba Group
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package app
|
|
|
|
var version = "dev"
|
|
|
|
// SetVersion overrides the version, build time and git commit strings.
|
|
// Called by pkg/cli.SetVersion for overlay modules that inject their own
|
|
// version info via ldflags.
|
|
func SetVersion(v, bt, gc string) {
|
|
if v != "" {
|
|
version = v
|
|
}
|
|
if bt != "" {
|
|
buildTime = bt
|
|
}
|
|
if gc != "" {
|
|
gitCommit = gc
|
|
}
|
|
}
|
|
|
|
// Version returns the current CLI version string, including build metadata
|
|
// when injected via ldflags (buildTime, gitCommit).
|
|
func Version() string {
|
|
if buildTime != "unknown" || gitCommit != "unknown" {
|
|
return version + " (" + gitCommit + ", " + buildTime + ")"
|
|
}
|
|
return version
|
|
}
|
|
|
|
// RawVersion returns the bare version string without build metadata.
|
|
func RawVersion() string { return version }
|
|
|
|
// BuildTime returns the build timestamp injected via ldflags.
|
|
func BuildTime() string { return buildTime }
|
|
|
|
// GitCommit returns the git commit hash injected via ldflags.
|
|
func GitCommit() string { return gitCommit }
|