diff --git a/.gitignore b/.gitignore index 01a4970..8230978 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ # Cache .cache +tmp/ # Binaries *.exe diff --git a/.goreleaser.yml b/.goreleaser.yml index 98b6bde..cfa5384 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -14,8 +14,8 @@ builds: ldflags: - -s -w - - -X gitlab.com/MedzikUser/go/pingbot/config.Version={{.RawVersion}} - - -X gitlab.com/MedzikUser/go/pingbot/config.Build={{.Date}} + - -X github.com/medzikuser/go-pingbot/config.Version={{ .RawVersion }} + - -X github.com/medzikuser/go-pingbot/config.Build={{ .Date }} archives: - format: tar.xz @@ -28,9 +28,9 @@ archives: - start.sh checksum: - name_template: 'md5_checksums.txt' + name_template: 'checksums.txt' - algorithm: md5 + algorithm: sha256 dockers: - id: amd64 @@ -42,21 +42,21 @@ dockers: goarm: '' image_templates: - - "medzik/pingbot:latest" - - "medzik/pingbot:{{ .Tag }}" - - "medzik/pingbot:v{{ .Major }}" - - "medzik/pingbot:v{{ .Major }}.{{ .Minor }}" + - "medzik/pingbot:latest" + - "medzik/pingbot:{{ .Tag }}" + - "medzik/pingbot:v{{ .Major }}" + - "medzik/pingbot:v{{ .Major }}.{{ .Minor }}" dockerfile: Dockerfile use: docker build_flag_templates: - - "--pull" - - "--label=org.opencontainers.image.created={{ .Date }}" - - "--label=org.opencontainers.image.title={{ .ProjectName }}" - - "--label=org.opencontainers.image.revision={{ .FullCommit }}" - - "--label=org.opencontainers.image.version={{ .Version }}" + - "--pull" + - "--label=org.opencontainers.image.created={{ .Date }}" + - "--label=org.opencontainers.image.title={{ .ProjectName }}" + - "--label=org.opencontainers.image.revision={{ .FullCommit }}" + - "--label=org.opencontainers.image.version={{ .Version }}" extra_files: - - start.sh + - start.sh diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a8037c4..980266f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,14 +7,14 @@ repos: # # Go Build # - - id: go-build-mod + - id: go-build-mod # # Go Mod Tidy # - - id: go-mod-tidy - - id: go-mod-tidy-repo + - id: go-mod-tidy + - id: go-mod-tidy-repo # # Formatters # - - id: go-fmt - - id: go-fmt-repo + - id: go-fmt + - id: go-fmt-repo diff --git a/Makefile b/Makefile index ffd804e..6ccca09 100644 --- a/Makefile +++ b/Makefile @@ -8,6 +8,7 @@ GORELEASER := goreleaser BUILD_FLAGS := build: + $(GO) mod tidy $(GO) build $(BUILD_FLAGS) -o $(BINARY_NAME) snapshot: diff --git a/README.md b/README.md index 6681c18..292f043 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ # [Pingbot](https://pingbot.cf/) - Backend -[![Repo Size](https://img.shields.io/github/repo-size/MedzikUser/go-pingbot)](https://github.com/MedzikUser/go-pingbot) -[![Build](https://img.shields.io/github/workflow/status/MedzikUser/go-pingbot/release/main)](https://github.com/MedzikUser/go-pingbot/actions/workflows/release.yml) +[![Repo Size](https://img.shields.io/github/repo-size/MedzikUser/go-pingbot)](https://github.com/medzikuser/go-pingbot) +[![Build](https://img.shields.io/github/workflow/status/MedzikUser/go-pingbot/release/main)](https://github.com/medzikuser/go-pingbot/actions/workflows/release.yml) This application "pings" websites every few minutes (to be set in config). It can be used to keep the application alive on e.g. [glitch.me](https://glitch.com/) or [repl.it](https://replit.com/). ## ⚡ Install Pre-Compile binary * 💻 Linux amd64 - * [Download](https://github.com/MedzikUser/go-pingbot/releases) latest version + * [Download](https://github.com/medzikuser/go-pingbot/releases) latest version * Unpack file `tar xf pingbot_*_linux_amd64.tar.xz` * Done your binary is `pingbot.out` @@ -21,10 +21,27 @@ This application "pings" websites every few minutes (to be set in config). It ca ### ⭐ Compile -* Download source code `git clone https://github.com/MedzikUser/go-pingbot.git --depth 1` +Method 2: +* `go install github.com/medzikuser/go-pingbot@latest` +* Output binary path + * Check GOPATH `go env GOPATH` + * Go to GOPATH and binary name is `pingbot` + +Method 2: +* Download source code `git clone https://github.com/medzikuser/go-pingbot.git --depth 1` * Go to folder with source code `cd go-pingbot` * Build `make` or `go build -o pingbot.out` -* Done your compiled binary is `pingbot.out` +* Done your compiled binary name is `pingbot.out` + +### ⭐ Cross Compile + +> [Check supported OS and ARCH](https://gist.github.com/asukakenji/f15ba7e588ac42795f421b48b8aede63) + +* Download source code `git clone https://github.com/medzikuser/go-pingbot.git --depth 1` +* Go to folder with source code `cd go-pingbot` +* Build `make GOOS=os GOARCH=arch` + * e.g. `make GOOS=openbsd GOARCH=arm64 ` +* Done your cross compiled binary name is `pingbot.out` ## ⚙️ Configurate diff --git a/config/toml.go b/config/toml.go index 16a6536..abbcdb7 100644 --- a/config/toml.go +++ b/config/toml.go @@ -48,16 +48,8 @@ var Toml tomlConfig func init() { _, err := toml.DecodeFile("./config.toml", &Toml) - if common.CheckErr(err, "decode toml config") { - if err.Error() == "open ./config.toml: no such file or directory" { - err := DownloadFile("config.toml", "https://github.com/"+GH_Repo+"/raw/main/config.schema.toml") - - if !common.CheckErr(err, "download default config") { - _, err = toml.DecodeFile("./config.toml", &Toml) - common.CheckErr(err, "decode toml config") - os.Exit(1) - } - } + if err != nil { + common.Log.Error("decode toml config: ", err) } } diff --git a/database/mongo/connect.go b/database/mongo/connect.go index e5bfe77..68f3cb4 100644 --- a/database/mongo/connect.go +++ b/database/mongo/connect.go @@ -5,7 +5,7 @@ import ( "time" "github.com/MedzikUser/go-utils/common" - "gitlab.com/MedzikUser/go/pingbot/config" + "github.com/medzikuser/go-pingbot/config" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" "go.mongodb.org/mongo-driver/mongo/readpref" diff --git a/go.mod b/go.mod index 0f103d5..9851fe0 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module gitlab.com/MedzikUser/go/pingbot +module github.com/medzikuser/go-pingbot go 1.17 @@ -26,11 +26,11 @@ require ( github.com/ulikunitz/xz v0.5.10 // indirect github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect go.mongodb.org/mongo-driver v1.7.4 - golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 // indirect - golang.org/x/net v0.0.0-20211029224645-99673261e6eb // indirect - golang.org/x/oauth2 v0.0.0-20211028175245-ba495a64dcb5 // indirect + golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa // indirect + golang.org/x/net v0.0.0-20211109214657-ef0fda0de508 // indirect + golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect - golang.org/x/sys v0.0.0-20211031064116-611d5d643895 // indirect + golang.org/x/sys v0.0.0-20211109184856-51b60fd695b3 // indirect golang.org/x/text v0.3.7 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.27.1 // indirect diff --git a/go.sum b/go.sum index 1bb90f8..88eaa10 100644 --- a/go.sum +++ b/go.sum @@ -303,8 +303,8 @@ golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa h1:idItI2DDfCokpg0N51B2VtiLdJ4vAuXC9fnCb2gACo4= +golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -363,16 +363,16 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20211029224645-99673261e6eb h1:pirldcYWx7rx7kE5r+9WsOXPXK0+WH5+uZ7uPmJ44uM= -golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211109214657-ef0fda0de508 h1:v3NKo+t/Kc3EASxaKZ82lwK6mCf4ZeObQBduYFZHo7c= +golang.org/x/net v0.0.0-20211109214657-ef0fda0de508/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20211028175245-ba495a64dcb5 h1:v79phzBz03tsVCUTbvTBmmC3CUXF5mKYt7DA4ZVldpM= -golang.org/x/oauth2 v0.0.0-20211028175245-ba495a64dcb5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 h1:RerP+noqYHUQ8CMRcPlC2nvTa4dcBIjegkuWdcUDuqg= +golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -423,8 +423,8 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/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-20211031064116-611d5d643895 h1:iaNpwpnrgL5jzWS0vCNnfa8HqzxveCFpFx3uC/X4Tps= -golang.org/x/sys v0.0.0-20211031064116-611d5d643895/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211109184856-51b60fd695b3 h1:T6tyxxvHMj2L1R2kZg0uNMpS8ZhB9lRa9XRGTCSA65w= +golang.org/x/sys v0.0.0-20211109184856-51b60fd695b3/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/main.go b/main.go index ab56e12..707cf26 100644 --- a/main.go +++ b/main.go @@ -10,10 +10,10 @@ import ( "github.com/MedzikUser/go-utils/common" "github.com/MedzikUser/go-utils/updater" "github.com/jpillora/opts" - "gitlab.com/MedzikUser/go/pingbot/config" - "gitlab.com/MedzikUser/go/pingbot/database/mongo" - "gitlab.com/MedzikUser/go/pingbot/ping" - "gitlab.com/MedzikUser/go/pingbot/website" + "github.com/medzikuser/go-pingbot/config" + "github.com/medzikuser/go-pingbot/database/mongo" + "github.com/medzikuser/go-pingbot/ping" + "github.com/medzikuser/go-pingbot/website" ) var log = common.Log @@ -54,7 +54,7 @@ func main() { reader := bufio.NewReader((os.Stdin)) char, _, err := reader.ReadRune() if err != nil { - fmt.Println(err) + log.Error(err) } switch char { @@ -63,6 +63,7 @@ func main() { err := client.Update() if err != nil { log.Error(err) + os.Exit(1) } @@ -71,18 +72,22 @@ func main() { err := client.Update() if err != nil { log.Error(err) + os.Exit(1) } 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) } } @@ -131,6 +136,7 @@ func main() { if config.Toml.HTTP.Enabled { wg.Add(1) + go website.Server() } else { log.Warn("HTTP Server -> Disabled") @@ -138,6 +144,7 @@ func main() { if config.Toml.Backend.Enabled { wg.Add(1) + go ping.Ticker() } else { log.Warn("Backend -> Disabled") diff --git a/node_modules/.yarn-integrity b/node_modules/.yarn-integrity new file mode 100644 index 0000000..7b593b8 --- /dev/null +++ b/node_modules/.yarn-integrity @@ -0,0 +1,10 @@ +{ + "systemParams": "linux-x64-102", + "modulesFolders": [], + "flags": [], + "linkedModules": [], + "topLevelPatterns": [], + "lockfileEntries": {}, + "files": [], + "artifacts": {} +} \ No newline at end of file diff --git a/ping/cache.go b/ping/cache.go index 5082caf..3720168 100644 --- a/ping/cache.go +++ b/ping/cache.go @@ -4,7 +4,7 @@ import ( "time" "github.com/MedzikUser/go-utils/common" - "gitlab.com/MedzikUser/go/pingbot/database/mongo" + "github.com/medzikuser/go-pingbot/database/mongo" ) var CacheURL []string diff --git a/ping/ping.go b/ping/ping.go index 050ba37..4fa0510 100644 --- a/ping/ping.go +++ b/ping/ping.go @@ -6,7 +6,7 @@ import ( "time" "github.com/MedzikUser/go-utils/common" - "gitlab.com/MedzikUser/go/pingbot/config" + "github.com/medzikuser/go-pingbot/config" ) func ping() int { diff --git a/ping/stopAfterPing.go b/ping/stopAfterPing.go index eb34ca7..1f2f231 100644 --- a/ping/stopAfterPing.go +++ b/ping/stopAfterPing.go @@ -5,7 +5,7 @@ import ( "time" "github.com/MedzikUser/go-utils/common" - "gitlab.com/MedzikUser/go/pingbot/config" + "github.com/medzikuser/go-pingbot/config" ) var log = common.Log diff --git a/ping/ticker.go b/ping/ticker.go index 8b953f5..c9029eb 100644 --- a/ping/ticker.go +++ b/ping/ticker.go @@ -3,7 +3,7 @@ package ping import ( "time" - "gitlab.com/MedzikUser/go/pingbot/config" + "github.com/medzikuser/go-pingbot/config" ) func Ticker() { diff --git a/website/routes/api/getAll.go b/website/routes/api/getAll.go index 3aab2b3..5330116 100644 --- a/website/routes/api/getAll.go +++ b/website/routes/api/getAll.go @@ -4,7 +4,7 @@ import ( "net/http" "github.com/gin-gonic/gin" - "gitlab.com/MedzikUser/go/pingbot/ping" + "github.com/medzikuser/go-pingbot/ping" ) func GetAll(c *gin.Context) { diff --git a/website/routes/api/status.go b/website/routes/api/status.go index 706d6a9..183fd57 100644 --- a/website/routes/api/status.go +++ b/website/routes/api/status.go @@ -7,8 +7,8 @@ import ( "github.com/MedzikUser/go-utils/common" "github.com/MedzikUser/go-utils/stats" "github.com/gin-gonic/gin" - "gitlab.com/MedzikUser/go/pingbot/config" - "gitlab.com/MedzikUser/go/pingbot/ping" + "github.com/medzikuser/go-pingbot/config" + "github.com/medzikuser/go-pingbot/ping" ) func Status(c *gin.Context) { diff --git a/website/server.go b/website/server.go index e1f9420..1e9b559 100644 --- a/website/server.go +++ b/website/server.go @@ -7,9 +7,9 @@ import ( "github.com/MedzikUser/go-utils/common" "github.com/gin-contrib/cors" "github.com/gin-gonic/gin" - "gitlab.com/MedzikUser/go/pingbot/config" - "gitlab.com/MedzikUser/go/pingbot/website/routes" - "gitlab.com/MedzikUser/go/pingbot/website/routes/api" + "github.com/medzikuser/go-pingbot/config" + "github.com/medzikuser/go-pingbot/website/routes" + "github.com/medzikuser/go-pingbot/website/routes/api" ) var router *gin.Engine