version.go raw
1 package scw
2
3 import (
4 "fmt"
5 "runtime"
6 "runtime/debug"
7 )
8
9 // TODO: versioning process
10 const (
11 defaultVersion = "v1.0.0-beta.7+dev"
12 path = "github.com/scaleway/scaleway-sdk-go"
13 )
14
15 var cachedVersion = (*string)(nil)
16
17 func getVersion() string {
18 if cachedVersion == nil {
19 debugVersion := ""
20 b, ok := debug.ReadBuildInfo()
21 if ok {
22 for _, dep := range b.Deps {
23 if dep.Path == path {
24 debugVersion = dep.Version
25 }
26 }
27 }
28
29 cachedVersion = &debugVersion
30 }
31
32 if *cachedVersion != "" {
33 return *cachedVersion
34 }
35
36 return defaultVersion
37 }
38
39 var userAgent = fmt.Sprintf("scaleway-sdk-go/%s (%s; %s; %s)", getVersion(), runtime.Version(), runtime.GOOS, runtime.GOARCH)
40