go-pingbot/update/update.go

43 lines
811 B
Go
Raw Normal View History

2021-07-11 21:19:37 +00:00
package update
import (
"os"
"github.com/MedzikUser/go-github-selfupdate/selfupdate"
2021-08-12 19:26:54 +00:00
"github.com/MedzikUser/go-utils/common"
"github.com/blang/semver/v4"
2021-07-11 21:19:37 +00:00
"gitlab.com/gaming0skar123/go/pingbot/config"
)
var log = common.Log
func Update() {
2021-07-14 11:23:30 +00:00
repo := config.GH_Repo
2021-07-11 21:19:37 +00:00
2021-07-14 11:23:30 +00:00
latest, found, err := selfupdate.DetectLatest(repo)
if common.CheckErr(err, "detecting letest version") {
return
}
2021-07-11 21:19:37 +00:00
v, err := semver.Parse(config.Version)
if common.CheckErr(err, "parse version") || !found || latest.Version.LTE(v) {
2021-07-11 21:19:37 +00:00
return
}
2021-07-14 11:23:30 +00:00
log.Warn("Updating...")
exe, err := os.Executable()
if common.CheckErr(err, "locate executable path") {
return
}
2021-07-11 21:19:37 +00:00
err = selfupdate.UpdateTo(latest.AssetURL, exe, "pingbot.out")
2021-07-14 11:23:30 +00:00
if common.CheckErr(err, "update binary") {
2021-07-11 21:19:37 +00:00
return
}
log.Info("Updated!")
defer os.Exit(0)
}