info.go 781 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package version
  2. import (
  3. "os"
  4. "path/filepath"
  5. "runtime"
  6. "github.com/pkg/errors"
  7. )
  8. type RuntimeInfo struct {
  9. OS string `json:"os"`
  10. Arch string `json:"arch"`
  11. ExPath string `json:"ex_path"`
  12. }
  13. type CurVersion struct {
  14. Version string `json:"version"`
  15. BuildID int `json:"build_id"`
  16. TotalBuild int `json:"total_build"`
  17. }
  18. func GetRuntimeInfo() (r RuntimeInfo, err error) {
  19. ex, err := os.Executable()
  20. if err != nil {
  21. err = errors.Wrap(err, "service.GetRuntimeInfo os.Executable() err")
  22. return
  23. }
  24. realPath, err := filepath.EvalSymlinks(ex)
  25. if err != nil {
  26. err = errors.Wrap(err, "service.GetRuntimeInfo filepath.EvalSymlinks() err")
  27. return
  28. }
  29. r = RuntimeInfo{
  30. OS: runtime.GOOS,
  31. Arch: runtime.GOARCH,
  32. ExPath: realPath,
  33. }
  34. return
  35. }