1
0
mirror of https://github.com/Mrs4s/go-cqhttp.git synced 2025-05-05 19:43:49 +08:00
go-cqhttp/global/update/update_others.go
2021-03-27 20:31:54 +08:00

51 lines
837 B
Go

// +build !windows
package update
import (
"archive/tar"
"bytes"
"compress/gzip"
"fmt"
"io"
"net/http"
log "github.com/sirupsen/logrus"
)
func Update(url string) {
resp, err := http.Get(url)
if err != nil {
log.Error("更新失败: ", err)
return
}
defer resp.Body.Close()
wc := WriteCounter{}
data, err := io.ReadAll(io.TeeReader(resp.Body, &wc))
if err != nil {
log.Error("更新失败: ", err)
return
}
gr, err := gzip.NewReader(bytes.NewReader(data))
if err != nil {
log.Error("更新失败: ", err)
return
}
tr := tar.NewReader(gr)
for {
header, err := tr.Next()
if err == io.EOF {
return
}
if header.Name == "go-cqhttp" {
err, _ := UpdateFromStream(tr)
fmt.Println()
if err != nil {
log.Error("更新失败!", err)
return
}
log.Info("更新完成!")
}
}
}