From f657aa6d1ba71d20cfc24279d9a4858cd0287d9b Mon Sep 17 00:00:00 2001 From: b5f0d6c3 Date: Wed, 27 Apr 2022 10:48:31 +0800 Subject: update mkvtool:add version check --- mkvtool/main.go | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'mkvtool/main.go') diff --git a/mkvtool/main.go b/mkvtool/main.go index 4cb5204..6c3eb95 100644 --- a/mkvtool/main.go +++ b/mkvtool/main.go @@ -5,15 +5,18 @@ import ( "fmt" "github.com/KurenaiRyu/MkvAutoSubset/mkvlib" "io" + "io/ioutil" "log" + "net/http" "os" "path" + "regexp" "runtime" "strings" ) const appName = "MKV Tool" -const appVer = "v3.4.7" +const appVer = "v3.4.8" const tTitle = appName + " " + appVer var appFN = fmt.Sprintf("%s %s %s/%s", appName, appVer, runtime.GOOS, runtime.GOARCH) @@ -29,8 +32,11 @@ func (self *arrayArg) Set(value string) error { return nil } +var latestTag = "" + func main() { setWindowTitle(tTitle) + go getLatestTag() s := "" data := "" dist := "" @@ -214,5 +220,22 @@ func main() { ec++ flag.PrintDefaults() } - defer os.Exit(ec) + defer func() { + if latestTag != "" && latestTag != appVer { + log.Printf("New version available:%s", latestTag) + } + os.Exit(ec) + }() +} + +func getLatestTag() { + if resp, err := http.DefaultClient.Get("https://api.github.com/repos/MkvAutoSubset/MkvAutoSubset/releases/latest"); err == nil { + if data, err := ioutil.ReadAll(resp.Body); err == nil { + reg, _ := regexp.Compile(`"tag_name":"([^"]+)"`) + arr := reg.FindStringSubmatch(string(data)) + if len(arr) > 1 { + latestTag = arr[1] + } + } + } } -- cgit v1.2.1