package main import ( "cr-launcher/utils" "fmt" "os/exec" "path" ) func main() { config, err := utils.ReadConfig() if err != nil { fmt.Println("配置文件错误") return } url := "" if config != nil { url = config.Url } version, err := utils.GetLatest(url) if err != nil { fmt.Println("获取版本信息错误") return } // 服务器最新版本有变动 更新 if version.Version != config.Version { // 下载 fmt.Println("更新中...") fmt.Println("下载程序...") err := utils.DownloadZip(version.Url) if err != nil { fmt.Println("下载失败,请重新运行") return } // 解压 fmt.Println("安装中,请稍等...") fileName := path.Base(version.Url) err = utils.Unzip(fileName) if err != nil { fmt.Println(err) fmt.Println("安装程序失败") return } // 替换版本 err = utils.WriteConfig(&utils.Config{ Version: version.Version, Url: config.Url, ExePath: config.ExePath, }) if err != nil { fmt.Println(err) fmt.Println("配置写入失败") } fmt.Println("安装成功!") } // 运行应用程序 cmd := exec.Command(config.ExePath) fmt.Println("程序正在启动...") data, err := cmd.Output() if err != nil { fmt.Println(err) fmt.Println("启动失败") return } fmt.Println(string(data)) fmt.Println("启动成功") }