info.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package upgrader
  2. import (
  3. "encoding/json"
  4. "os"
  5. "path/filepath"
  6. "runtime"
  7. "github.com/0xJacky/Nginx-UI/app"
  8. "github.com/pkg/errors"
  9. )
  10. type RuntimeInfo struct {
  11. OS string `json:"os"`
  12. Arch string `json:"arch"`
  13. ExPath string `json:"ex_path"`
  14. }
  15. type CurVersion struct {
  16. Version string `json:"version"`
  17. BuildID int `json:"build_id"`
  18. TotalBuild int `json:"total_build"`
  19. }
  20. func GetRuntimeInfo() (r RuntimeInfo, err error) {
  21. ex, err := os.Executable()
  22. if err != nil {
  23. err = errors.Wrap(err, "service.GetRuntimeInfo os.Executable() err")
  24. return
  25. }
  26. realPath, err := filepath.EvalSymlinks(ex)
  27. if err != nil {
  28. err = errors.Wrap(err, "service.GetRuntimeInfo filepath.EvalSymlinks() err")
  29. return
  30. }
  31. r = RuntimeInfo{
  32. OS: runtime.GOOS,
  33. Arch: runtime.GOARCH,
  34. ExPath: realPath,
  35. }
  36. return
  37. }
  38. func GetCurrentVersion() (c CurVersion, err error) {
  39. verJson, err := app.DistFS.ReadFile(app.VersionPath)
  40. if err != nil {
  41. err = errors.Wrap(err, "service.GetCurrentVersion ReadFile err")
  42. return
  43. }
  44. err = json.Unmarshal(verJson, &c)
  45. if err != nil {
  46. err = errors.Wrap(err, "service.GetCurrentVersion json.Unmarshal err")
  47. return
  48. }
  49. return
  50. }