mirror of
https://github.com/MedzikUser/go-pingbot
synced 2024-08-14 23:57:07 +00:00
chore(opts): add option update e.g. to major version update
This commit is contained in:
parent
15e09e8ab7
commit
3391c946ff
4 changed files with 70 additions and 2 deletions
|
@ -33,6 +33,7 @@ func loop(url string) {
|
|||
req, err := http.NewRequestWithContext(ctx, "GET", url, nil)
|
||||
if common.CheckErr(err, "new http request") {
|
||||
Status.Error++
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -40,6 +41,7 @@ func loop(url string) {
|
|||
r, err := client.Do(req)
|
||||
if err != nil {
|
||||
Status.Error++
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
|
|
1
go.mod
1
go.mod
|
@ -14,6 +14,7 @@ require (
|
|||
github.com/google/go-cmp v0.5.6 // indirect
|
||||
github.com/google/go-querystring v1.1.0 // indirect
|
||||
github.com/joho/godotenv v1.3.0
|
||||
github.com/jpillora/opts v1.2.0
|
||||
github.com/json-iterator/go v1.1.11 // indirect
|
||||
github.com/klauspost/compress v1.13.5 // indirect
|
||||
github.com/mattn/go-isatty v0.0.13 // indirect
|
||||
|
|
10
go.sum
10
go.sum
|
@ -167,6 +167,10 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf
|
|||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
|
||||
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
|
||||
github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA=
|
||||
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||
github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o=
|
||||
github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
|
||||
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
||||
|
@ -176,6 +180,8 @@ github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf/go.mod h
|
|||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
||||
github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
|
||||
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
|
||||
github.com/jpillora/opts v1.2.0 h1:H8vWooV3P9nsqmCcPgxNZyIa7GPOWA1KQFsfAzIkCtE=
|
||||
github.com/jpillora/opts v1.2.0/go.mod h1:7p7X/vlpKZmtaDFYKs956EujFqA6aCrOkcCaS6UBcR4=
|
||||
github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||
github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ=
|
||||
|
@ -226,6 +232,8 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
|||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/posener/complete v1.2.2-0.20190308074557-af07aa5181b3 h1:GqpA1/5oN1NgsxoSA4RH0YWTaqvUlQNeOpHXD/JRbOQ=
|
||||
github.com/posener/complete v1.2.2-0.20190308074557-af07aa5181b3/go.mod h1:6gapUrK/U1TAN7ciCoNRIdVC5sbdBTUh1DKN0g6uH7E=
|
||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||
github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||
|
@ -411,8 +419,6 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf h1:2ucpDCmfkl8Bd/FsLtiD653Wf96cW37s+iGx93zsu4k=
|
||||
golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e h1:XMgFehsDnnLGtjvjOfqWSUzt0alpTR1RSEuznObga2c=
|
||||
golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
||||
|
|
59
main.go
59
main.go
|
@ -1,12 +1,15 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"os"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/MedzikUser/go-utils/common"
|
||||
"github.com/MedzikUser/go-utils/updater"
|
||||
"github.com/jpillora/opts"
|
||||
"gitlab.com/gaming0skar123/go/pingbot/backend"
|
||||
"gitlab.com/gaming0skar123/go/pingbot/config"
|
||||
"gitlab.com/gaming0skar123/go/pingbot/database/mongo"
|
||||
|
@ -15,6 +18,10 @@ import (
|
|||
|
||||
var log = common.Log
|
||||
|
||||
type cmdOpts struct {
|
||||
Update bool `opts:"help=update version to latest e.g. if update is major"`
|
||||
}
|
||||
|
||||
func main() {
|
||||
log.Info("You're using verion: ", config.Version)
|
||||
|
||||
|
@ -22,6 +29,58 @@ func main() {
|
|||
|
||||
mongo.Connect()
|
||||
|
||||
c := cmdOpts{}
|
||||
|
||||
opts.Parse(&c)
|
||||
|
||||
if c.Update {
|
||||
client := updater.Client{
|
||||
GitHub: config.GH_Repo,
|
||||
GitHubToken: config.GH_Token,
|
||||
Version: config.Version,
|
||||
Binary: "pingbot.out",
|
||||
CheckEvery: config.Toml.AutoUpdate.Check * time.Minute,
|
||||
AfterUpdate: func() {
|
||||
log.Info("Updated!")
|
||||
|
||||
if !config.Toml.Options.Stop_After_Ping {
|
||||
os.Exit(0)
|
||||
}
|
||||
},
|
||||
Major: false,
|
||||
}
|
||||
|
||||
err := client.Update()
|
||||
if err != nil && err.Error() == "major update" {
|
||||
fmt.Print("Update to new major version? (y/N) ")
|
||||
reader := bufio.NewReader((os.Stdin))
|
||||
char, _, err := reader.ReadRune()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
|
||||
switch char {
|
||||
case 'y':
|
||||
client.Major = true
|
||||
client.Update()
|
||||
|
||||
case 'Y':
|
||||
client.Major = true
|
||||
client.Update()
|
||||
|
||||
default:
|
||||
log.Warn("Canceled!")
|
||||
os.Exit(2)
|
||||
}
|
||||
} else if err != nil {
|
||||
log.Error(err)
|
||||
os.Exit(1)
|
||||
} else {
|
||||
log.Info("You're using latest version!")
|
||||
os.Exit(0)
|
||||
}
|
||||
}
|
||||
|
||||
if config.Toml.AutoUpdate.Enabled {
|
||||
wg.Add(1)
|
||||
|
||||
|
|
Loading…
Reference in a new issue