main.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package main
  2. import (
  3. "os"
  4. "path/filepath"
  5. "runtime"
  6. "strconv"
  7. "strings"
  8. "github.com/sagernet/sing-box/cmd/internal/build_shared"
  9. "github.com/sagernet/sing-box/log"
  10. "github.com/sagernet/sing/common"
  11. )
  12. func main() {
  13. newVersion := common.Must1(build_shared.ReadTagVersion())
  14. androidPath, err := filepath.Abs("../sing-box-for-android")
  15. if err != nil {
  16. log.Fatal(err)
  17. }
  18. common.Must(os.Chdir(androidPath))
  19. localProps := common.Must1(os.ReadFile("version.properties"))
  20. var propsList [][]string
  21. for _, propLine := range strings.Split(string(localProps), "\n") {
  22. propsList = append(propsList, strings.Split(propLine, "="))
  23. }
  24. var (
  25. versionUpdated bool
  26. goVersionUpdated bool
  27. )
  28. for _, propPair := range propsList {
  29. switch propPair[0] {
  30. case "VERSION_NAME":
  31. if propPair[1] != newVersion.String() {
  32. versionUpdated = true
  33. propPair[1] = newVersion.String()
  34. log.Info("updated version to ", newVersion.String())
  35. }
  36. case "GO_VERSION":
  37. if propPair[1] != runtime.Version() {
  38. goVersionUpdated = true
  39. propPair[1] = runtime.Version()
  40. log.Info("updated Go version to ", runtime.Version())
  41. }
  42. }
  43. }
  44. if !(versionUpdated || goVersionUpdated) {
  45. log.Info("version not changed")
  46. return
  47. }
  48. for _, propPair := range propsList {
  49. switch propPair[0] {
  50. case "VERSION_CODE":
  51. versionCode := common.Must1(strconv.ParseInt(propPair[1], 10, 64))
  52. propPair[1] = strconv.Itoa(int(versionCode + 1))
  53. log.Info("updated version code to ", propPair[1])
  54. }
  55. }
  56. var newProps []string
  57. for _, propPair := range propsList {
  58. newProps = append(newProps, strings.Join(propPair, "="))
  59. }
  60. common.Must(os.WriteFile("version.properties", []byte(strings.Join(newProps, "\n")), 0o644))
  61. }