You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.4 KiB
59 lines
1.4 KiB
1 year ago
|
package version
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"runtime"
|
||
|
|
||
|
"gopkg.in/src-d/go-git.v4"
|
||
|
)
|
||
|
|
||
|
// Get returns the overall codebase version. It's for detecting
|
||
|
// what code a binary was built from.
|
||
|
func Get() Info {
|
||
|
// These variables typically come from -ldflags settings and in
|
||
|
// their absence fallback to the settings in ./base.go
|
||
|
return Info{
|
||
|
Major: gitMajor,
|
||
|
Minor: gitMinor,
|
||
|
GitVersion: gitVersion,
|
||
|
GitTreeState: gitTreeState,
|
||
|
GitCommit: gitCommit,
|
||
|
BuildDate: buildDate,
|
||
|
GoVersion: runtime.Version(),
|
||
|
Compiler: runtime.Compiler,
|
||
|
Platform: fmt.Sprintf("%s/%s", runtime.GOOS, runtime.GOARCH),
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// GetClientVersion returns the git version of the OpenIM client repository
|
||
|
func GetClientVersion() (*OpenIMClientVersion, error) {
|
||
|
clientVersion, err := getClientVersion()
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &OpenIMClientVersion{
|
||
|
ClientVersion: clientVersion,
|
||
|
}, nil
|
||
|
}
|
||
|
|
||
|
func getClientVersion() (string, error) {
|
||
|
repo, err := git.PlainClone("/tmp/openim-sdk-core", false, &git.CloneOptions{
|
||
|
URL: "https://github.com/OpenIMSDK/openim-sdk-core",
|
||
|
})
|
||
|
if err != nil {
|
||
|
return "", fmt.Errorf("error cloning repository: %w", err)
|
||
|
}
|
||
|
|
||
|
ref, err := repo.Head()
|
||
|
if err != nil {
|
||
|
return "", fmt.Errorf("error getting head reference: %w", err)
|
||
|
}
|
||
|
|
||
|
return ref.Hash().String(), nil
|
||
|
}
|
||
|
|
||
|
// GetSingleVersion returns single version of sealer
|
||
|
func GetSingleVersion() string {
|
||
|
return gitVersion
|
||
|
}
|