summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorb5f0d6c3 <[email protected]>2022-04-27 10:48:31 +0800
committerb5f0d6c3 <[email protected]>2022-04-27 10:48:31 +0800
commitf657aa6d1ba71d20cfc24279d9a4858cd0287d9b (patch)
tree440898223dcf4faa1ecfa58d67f18e4b6f5140c9
parent86cf574532a12355457e788185fad48438fb0dd2 (diff)
update mkvtool:add version check
-rw-r--r--mkvtool/main.go27
1 files changed, 25 insertions, 2 deletions
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]
+ }
+ }
+ }
}