web: set user-agent for all web requests

This commit is contained in:
James Bayliss
2021-02-26 21:51:15 +00:00
parent 9c2b2ece33
commit a9486e1ce2
6 changed files with 20 additions and 11 deletions

View File

@@ -19,9 +19,9 @@ builds:
- 7
ldflags:
- -s -w
- -X "main.Version={{ .Version }}"
- -X "main.GitCommit={{ .ShortCommit }}"
- -X "main.Timestamp={{ .Timestamp }}"
- -X "github.com/l3uddz/nabarr/build.Version={{ .Version }}"
- -X "github.com/l3uddz/nabarr/build.GitCommit={{ .ShortCommit }}"
- -X "github.com/l3uddz/nabarr/build.Timestamp={{ .Timestamp }}"
flags:
- -trimpath

View File

@@ -38,7 +38,7 @@ ${BUILD_PATH}/${CMD}: ${GO_FILES} go.sum
CGO_ENABLED=${CGO} go build \
-mod vendor \
-trimpath \
-ldflags "-s -w -X main.Version=${VERSION} -X main.GitCommit=${GIT_COMMIT} -X main.Timestamp=${TIMESTAMP}" \
-ldflags "-s -w -X github.com/l3uddz/nabarr/build.Version=${VERSION} -X github.com/l3uddz/nabarr/build.GitCommit=${GIT_COMMIT} -X github.com/l3uddz/nabarr/build.Timestamp=${TIMESTAMP}" \
-o ${BUILD_PATH}/${CMD} \
./cmd/nabarr

7
build/build.go Normal file
View File

@@ -0,0 +1,7 @@
package build
var (
Version string
Timestamp string
GitCommit string
)

View File

@@ -6,6 +6,7 @@ import (
"github.com/alecthomas/kong"
"github.com/goccy/go-yaml"
"github.com/l3uddz/nabarr"
"github.com/l3uddz/nabarr/build"
"github.com/l3uddz/nabarr/cache"
"github.com/l3uddz/nabarr/cmd/nabarr/pvr"
"github.com/l3uddz/nabarr/media"
@@ -28,10 +29,6 @@ type config struct {
}
var (
Version string
Timestamp string
GitCommit string
// CLI
cli struct {
globals
@@ -67,7 +64,7 @@ func main() {
Compact: true,
}),
kong.Vars{
"version": fmt.Sprintf("%s (%s@%s)", Version, GitCommit, Timestamp),
"version": fmt.Sprintf("%s (%s@%s)", build.Version, build.GitCommit, build.Timestamp),
"config_file": filepath.Join(defaultConfigPath(), "config.yml"),
"cache_file": filepath.Join(defaultConfigPath(), "cache"),
"log_file": filepath.Join(defaultConfigPath(), "activity.log"),

View File

@@ -5,6 +5,7 @@ import (
"fmt"
"github.com/alecthomas/kong"
"github.com/blang/semver"
"github.com/l3uddz/nabarr/build"
"github.com/rhysd/go-github-selfupdate/selfupdate"
"os"
)
@@ -15,7 +16,7 @@ func (u updateFlag) Decode(ctx *kong.DecodeContext) error { return nil }
func (u updateFlag) IsBool() bool { return true }
func (u updateFlag) BeforeApply(app *kong.Kong, vars kong.Vars) error {
// parse current version
v, err := semver.Parse(Version)
v, err := semver.Parse(build.Version)
if err != nil {
fmt.Printf("Failed parsing current build version: %v\n", err)
app.Exit(1)
@@ -33,7 +34,7 @@ func (u updateFlag) BeforeApply(app *kong.Kong, vars kong.Vars) error {
// check version
if !found || latest.Version.LTE(v) {
fmt.Printf("Already using the latest version: %v\n", Version)
fmt.Printf("Already using the latest version: %v\n", build.Version)
app.Exit(0)
return nil
}

View File

@@ -2,6 +2,7 @@ package util
import (
"github.com/hashicorp/go-retryablehttp"
"github.com/l3uddz/nabarr/build"
"github.com/rs/zerolog"
"go.uber.org/ratelimit"
"net/http"
@@ -14,6 +15,9 @@ func NewRetryableHttpClient(timeout time.Duration, rl ratelimit.Limiter, log *ze
retryClient.RetryWaitMin = 1 * time.Second
retryClient.RetryWaitMax = 10 * time.Second
retryClient.RequestLogHook = func(l retryablehttp.Logger, request *http.Request, i int) {
// set user-agent
request.Header.Set("User-Agent", "nabarr/"+build.Version)
// rate limit
if rl != nil {
rl.Take()