main.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. fmt.Println("更新中...")
  27. fmt.Println("下载程序...")
  28. err := utils.DownloadZip(version.Url)
  29. if err != nil {
  30. fmt.Println("下载失败,请重新运行")
  31. return
  32. }
  33. // 解压
  34. fmt.Println("安装中,请稍等...")
  35. fileName := path.Base(version.Url)
  36. err = utils.Unzip(fileName)
  37. if err != nil {
  38. fmt.Println(err)
  39. fmt.Println("安装程序失败")
  40. return
  41. }
  42. // 替换版本
  43. err = utils.WriteConfig(&utils.Config{
  44. Version: version.Version,
  45. Url: config.Url,
  46. ExePath: config.ExePath,
  47. })
  48. if err != nil {
  49. fmt.Println(err)
  50. fmt.Println("配置写入失败")
  51. }
  52. fmt.Println("安装成功!")
  53. }
  54. // 运行应用程序
  55. cmd := exec.Command(config.ExePath)
  56. fmt.Println("程序正在启动...")
  57. data, err := cmd.Output()
  58. if err != nil {
  59. fmt.Println(err)
  60. fmt.Println("启动失败")
  61. return
  62. }
  63. fmt.Println(string(data))
  64. fmt.Println("启动成功")
  65. }