web: set user-agent for all web requests
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
2
Makefile
2
Makefile
@@ -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
7
build/build.go
Normal file
@@ -0,0 +1,7 @@
|
||||
package build
|
||||
|
||||
var (
|
||||
Version string
|
||||
Timestamp string
|
||||
GitCommit string
|
||||
)
|
||||
@@ -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"),
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user