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