2021-07-11 21:19:37 +00:00
|
|
|
package update
|
|
|
|
|
|
|
|
import (
|
|
|
|
"os"
|
|
|
|
|
2021-07-24 21:19:22 +00:00
|
|
|
"github.com/MedzikUser/go-github-selfupdate/selfupdate"
|
2021-08-12 19:26:54 +00:00
|
|
|
"github.com/MedzikUser/go-utils/common"
|
2021-07-24 21:19:22 +00:00
|
|
|
"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
|
|
|
|
2021-07-26 09:32:50 +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
|
|
|
|
2021-07-24 21:19:22 +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)
|
|
|
|
}
|