From 5a1d99989fa32be1684b9290b4a58e8418b7b92d Mon Sep 17 00:00:00 2001
From: shenwc <spd260@126.com>
Date: 星期二, 26 十一月 2024 17:57:50 +0800
Subject: [PATCH] 11111
---
_example/specific/specific.go | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 56 insertions(+), 0 deletions(-)
diff --git a/_example/specific/specific.go b/_example/specific/specific.go
new file mode 100755
index 0000000..237a613
--- /dev/null
+++ b/_example/specific/specific.go
@@ -0,0 +1,56 @@
+package main
+
+import (
+ "fmt"
+ "runtime"
+
+ "github.com/zan8in/gologger"
+ update "github.com/zan8in/goupdate"
+ "github.com/zan8in/goupdate/progress"
+ "github.com/zan8in/goupdate/stores/github"
+)
+
+func main() {
+
+ // update polls(1) from tj/gh-polls on github
+ m := &update.Manager{
+ Command: "up",
+ Store: &github.Store{
+ Owner: "apex",
+ Repo: "up",
+ Version: "0.4.6",
+ },
+ }
+
+ // fetch the target release
+ release, err := m.GetRelease("0.4.5")
+ if err != nil {
+ gologger.Info().Msgf("error fetching release: %s", err)
+ return
+ }
+
+ // find the tarball for this system
+ a := release.FindTarball(runtime.GOOS, runtime.GOARCH)
+ if a == nil {
+ gologger.Error().Msg("no binary for your system")
+ return
+ }
+
+ // whitespace
+ fmt.Println()
+
+ // download tarball to a tmp dir
+ tarball, err := a.DownloadProxy(progress.Reader)
+ if err != nil {
+ gologger.Error().Msgf("error downloading: %s", err)
+ return
+ }
+
+ // install it
+ if err := m.Install(tarball); err != nil {
+ gologger.Error().Msgf("error installing: %s", err)
+ return
+ }
+
+ gologger.Info().Msgf("Updated to %s\n", release.Version)
+}
--
Gitblit v1.8.0