main.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package main
  2. import (
  3. "cr-launcher/utils"
  4. "fmt"
  5. "os/exec"
  6. "path"
  7. )
  8. func main() {
  9. config, err := utils.ReadConfig()
  10. if err != nil {
  11. fmt.Println("配置文件错误")
  12. return
  13. }
  14. url := ""
  15. if config != nil {
  16. url = config.Url
  17. }
  18. version, err := utils.GetLatest(url)
  19. if err != nil {
  20. fmt.Println("获取版本信息错误")
  21. return
  22. }
  23. // 服务器最新版本有变动 更新
  24. if version.Version != config.Version {
  25. // 下载
  26. utils.DownloadZip(version.Url)
  27. // 解压
  28. fmt.Println("更新")
  29. fileName := path.Base(version.Url)
  30. err := utils.Unzip(fileName)
  31. if err != nil {
  32. fmt.Println(err)
  33. return
  34. }
  35. // 替换版本
  36. err = utils.WriteConfig(&utils.Config{
  37. Version: version.Version,
  38. Url: config.Url,
  39. ExePath: config.ExePath,
  40. })
  41. if err != nil {
  42. fmt.Println(err)
  43. fmt.Println("配置写入失败")
  44. }
  45. }
  46. // 运行应用程序
  47. cmd := exec.Command(config.ExePath)
  48. data, err := cmd.Output()
  49. if err != nil {
  50. fmt.Println(err)
  51. fmt.Println("启动失败")
  52. return
  53. }
  54. fmt.Println(string(data))
  55. fmt.Println("启动成功")
  56. }