Thumbnail

rani/matterbridge.git

Clone URL: https://git.buni.party/rani/matterbridge.git

commit cf27fb4b5730a96d07e0ddd8ca3ee01f0d6ca889 Author: Alex Vandiver <github@chmrr.net> Date: Sat Oct 23 14:46:27 2021 +0000 Add better error handling on Zulip (#1589) * zulip: Treat unknown errors with a 10-second backoff. An unknown error (including an unauthorized error) would fall through with no calls to time.Sleep, resulting in hammering the server as quickly as possible. Add a 10-second sleep in the default error case. The heartbeat is left with no explicit sleep, but all other codepaths now contain one. * version: Move version information into a separate package. This will allow it to be accessed by other sections of the code. * zulip: Use the matterbridge version in the user-agent. Co-authored-by: Wim <wim@42.be> diff --git a/.github/workflows/development.yml b/.github/workflows/development.yml index ff7313c..0f62c99 100644 --- a/.github/workflows/development.yml +++ b/.github/workflows/development.yml @@ -359 +359 @@ jobs: run: | mkdir -p output/{win,lin,arm,mac} VERSION=$(git describe --tags) - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -X main.githash=$(git log --pretty=format:'%h' -n 1)" -o output/lin/matterbridge-$VERSION-linux-amd64 - CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "-s -X main.githash=$(git log --pretty=format:'%h' -n 1)" -o output/win/matterbridge-$VERSION-windows-amd64.exe - CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags "-s -X main.githash=$(git log --pretty=format:'%h' -n 1)" -o output/mac/matterbridge-$VERSION-darwin-amd64 + CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -X github.com/42wim/matterbridge/version.GitHash=$(git log --pretty=format:'%h' -n 1)" -o output/lin/matterbridge-$VERSION-linux-amd64 + CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "-s -X github.com/42wim/matterbridge/version.GitHash=$(git log --pretty=format:'%h' -n 1)" -o output/win/matterbridge-$VERSION-windows-amd64.exe + CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags "-s -X github.com/42wim/matterbridge/version.GitHash=$(git log --pretty=format:'%h' -n 1)" -o output/mac/matterbridge-$VERSION-darwin-amd64 - name: Upload linux 64-bit if: startsWith(matrix.go-version,'1.17') uses: actions/upload-artifact@v2 diff --git a/.goreleaser.yml b/.goreleaser.yml index 5af21a8..c4f9064 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -227 +227 @@ builds: - 6 - 7   ldflags: - - -s -w -X main.githash={{.ShortCommit}} + - -s -w -X github.com/42wim/matterbridge/version.GitHash={{.ShortCommit}}    archives:   - diff --git a/Dockerfile b/Dockerfile index 8e2dded..6a2b865 100644 --- a/Dockerfile +++ b/Dockerfile @@ -37 +37 @@ FROM alpine:edge AS builder  COPY . /go/src/matterbridge  RUN apk --no-cache add go git \ && cd /go/src/matterbridge \ - && CGO_ENABLED=0 go build -mod vendor -ldflags "-X main.githash=$(git log --pretty=format:'%h' -n 1)" -o /bin/matterbridge + && CGO_ENABLED=0 go build -mod vendor -ldflags "-X github.com/42wim/matterbridge/version.GitHash=$(git log --pretty=format:'%h' -n 1)" -o /bin/matterbridge    FROM alpine  RUN apk --no-cache add ca-certificates mailcap diff --git a/bridge/zulip/zulip.go b/bridge/zulip/zulip.go index e66558a..c912b6f 100644 --- a/bridge/zulip/zulip.go +++ b/bridge/zulip/zulip.go @@ -26 +27 @@ package bzulip    import (   "encoding/json" + "fmt"   "io/ioutil"   "strconv"   "strings" @@ -116 +127 @@ import (   "github.com/42wim/matterbridge/bridge"   "github.com/42wim/matterbridge/bridge/config"   "github.com/42wim/matterbridge/bridge/helper" + "github.com/42wim/matterbridge/version"   gzb "github.com/matterbridge/gozulipbot"  )   @@ -277 +297 @@ func New(cfg *bridge.Config) bridge.Bridger {  }    func (b *Bzulip) Connect() error { - bot := gzb.Bot{APIKey: b.GetString("token"), APIURL: b.GetString("server") + "/api/v1/", Email: b.GetString("login")} + bot := gzb.Bot{APIKey: b.GetString("token"), APIURL: b.GetString("server") + "/api/v1/", Email: b.GetString("login"), UserAgent: fmt.Sprintf("matterbridge/%s", version.Release)}   bot.Init()   q, err := bot.RegisterAll()   b.q = q @@ -1256 +1277 @@ func (b *Bzulip) handleQueue() error {   b.Log.Debug("heartbeat received.")   default:   b.Log.Debugf("receiving error: %#v", err) + time.Sleep(time.Second * 10)   }   if err != nil {   continue diff --git a/matterbridge.go b/matterbridge.go index b9b7d6d..7ab2978 100644 --- a/matterbridge.go +++ b/matterbridge.go @@ -1015 +1013 @@ import (   "github.com/42wim/matterbridge/bridge/config"   "github.com/42wim/matterbridge/gateway"   "github.com/42wim/matterbridge/gateway/bridgemap" + "github.com/42wim/matterbridge/version"   "github.com/google/gops/agent"   prefixed "github.com/matterbridge/logrus-prefixed-formatter"   "github.com/sirupsen/logrus"  )    var ( - version = "1.23.1-dev" - githash string -   flagConfig = flag.String("conf", "matterbridge.toml", "config file")   flagDebug = flag.Bool("debug", false, "enable debug")   flagVersion = flag.Bool("version", false, "show version") @@ -287 +267 @@ var (  func main() {   flag.Parse()   if *flagVersion { - fmt.Printf("version: %s %s\n", version, githash) + fmt.Printf("version: %s %s\n", version.Release, version.GitHash)   return   }   @@ -438 +418 @@ func main() {   }   }   - logger.Printf("Running version %s %s", version, githash) - if strings.Contains(version, "-dev") { + logger.Printf("Running version %s %s", version.Release, version.GitHash) + if strings.Contains(version.Release, "-dev") {   logger.Println("WARNING: THIS IS A DEVELOPMENT VERSION. Things may break.")   }   diff --git a/tgs.Dockerfile b/tgs.Dockerfile index 83a77e7..5badc0a 100644 --- a/tgs.Dockerfile +++ b/tgs.Dockerfile @@ -57 +57 @@ RUN apk add \ go \ git \   && cd /go/src/matterbridge \ - && go build -mod vendor -ldflags "-X main.githash=$(git log --pretty=format:'%h' -n 1)" -o /bin/matterbridge + && go build -mod vendor -ldflags "-X github.com/42wim/matterbridge/version.GitHash=$(git log --pretty=format:'%h' -n 1)" -o /bin/matterbridge    FROM alpine  RUN apk --no-cache add \ diff --git a/version/version.go b/version/version.go new file mode 100644 index 0000000..19f3fa3 --- /dev/null +++ b/version/version.go @@ -00 +16 @@ +package version + +var ( + Release = "1.23.1-dev" + GitHash string +)