golang的私有化定制自动更新插件
shenwc
2024-11-26 f3ef5cf77a9ed8b93f5c0834cee10a26a219a5b7
README.md
old mode 100644 new mode 100755
@@ -1,12 +1,66 @@
## go-update
## goupdate
Package update provides tooling to auto-update binary releases
from GitHub based on the user's current version and operating system. Used by command-line tools such as [Up](https://github.com/apex/up) and [Apex](https://github.com/apex/apex).
Goupdate 是用 Go 语言开发的工具,能够自动从 GitHub 和 Gitee 下载最新的发布版本,并更新本地程序。
---
本程序是基于 https://github.com/tj/go-update 进行的分支,进行了额外功能的增强。
[![GoDoc](https://godoc.org/github.com/zan8in/go-update?status.svg)](https://godoc.org/github.com/zan8in/go-update)
![](https://img.shields.io/badge/license-MIT-blue.svg)
![](https://img.shields.io/badge/status-stable-green.svg)
## 更新 github
```go
package main
<a href="https://apex.sh"><img src="http://tjholowaychuk.com:6000/svg/sponsor"></a>
import (
   "github.com/zan8in/gologger"
   "github.com/zan8in/goupdate"
   "github.com/zan8in/goupdate/stores/github"
)
func main() {
   owner := "zan8in"
   repo := "afrog"
   version := "2.8.1"
   if result, err := github.Update(owner, repo, version); err != nil {
      gologger.Error().Msg(err.Error())
   } else {
      if result.Status == 2 {
         gologger.Info().Msgf("%s %s", repo, goupdate.LatestVersionTips)
      } else {
         gologger.Info().Msgf("Successfully updated to %s %s\n", repo, result.LatestVersion)
      }
   }
}
```
## 更新 gitee
```go
package main
import (
   "github.com/zan8in/gologger"
   "github.com/zan8in/goupdate"
   "github.com/zan8in/goupdate/stores/gitee"
)
func main() {
   owner := "zanbin"
   repo := "afrog"
   version := "2.8.9"
   if result, err := gitee.Update(owner, repo, version); err != nil {
      gologger.Error().Msg(err.Error())
   } else {
      if result.Status == 2 {
         gologger.Info().Msgf("%s %s", repo, goupdate.LatestVersionTips)
      } else {
         gologger.Info().Msgf("Successfully updated to %s %s\n", repo, result.LatestVersion)
      }
   }
}
```