Compare commits

...

2 Commits

Author SHA1 Message Date
18f5d74402 optimize build 2022-03-07 19:26:58 +01:00
71611fd754 simplify & optimize code 2022-03-07 19:24:11 +01:00
2 changed files with 11 additions and 11 deletions

View File

@ -1,12 +1,9 @@
project_name: mullvad-best-server project_name: mullvad-best-server
# This is an example .goreleaser.yml file with some sensible defaults.
# Make sure to check the documentation at https://goreleaser.com
before: before:
hooks: hooks:
# You may remove this if you don't use go modules.
- go mod tidy - go mod tidy
# you may remove this if you don't need go generate
- go generate ./...
builds: builds:
- env: - env:
- CGO_ENABLED=0 - CGO_ENABLED=0
@ -15,6 +12,9 @@ builds:
- windows - windows
- darwin - darwin
mod_timestamp: "{{ .CommitTimestamp }}" mod_timestamp: "{{ .CommitTimestamp }}"
ldflags:
- -s -w
archives: archives:
- replacements: - replacements:
darwin: Darwin darwin: Darwin
@ -24,10 +24,13 @@ archives:
amd64: x86_64 amd64: x86_64
format: binary format: binary
name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}" name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
checksum: checksum:
name_template: 'checksums.txt' name_template: 'checksums.txt'
snapshot: snapshot:
name_template: "{{ incpatch .Version }}-next" name_template: "{{ incpatch .Version }}-next"
changelog: changelog:
sort: asc sort: asc
filters: filters:

View File

@ -14,8 +14,6 @@ import (
"time" "time"
) )
var pings = make(map[string]time.Duration)
func main() { func main() {
zerolog.SetGlobalLevel(zerolog.InfoLevel) zerolog.SetGlobalLevel(zerolog.InfoLevel)
var outputFlag = flag.String("o", "", "Output format. 'json' outputs server json") var outputFlag = flag.String("o", "", "Output format. 'json' outputs server json")
@ -40,16 +38,15 @@ func main() {
} }
func selectBestServerIndex(servers []server, country string) int { func selectBestServerIndex(servers []server, country string) int {
best := servers[0].Hostname
bestIndex := -1 bestIndex := -1
var bestPing time.Duration
for i, server := range servers { for i, server := range servers {
if server.Active && server.CountryCode == country { if server.Active && server.CountryCode == country {
duration, err := serverLatency(server) duration, err := serverLatency(server)
if err == nil { if err == nil {
pings[server.Hostname] = duration if bestIndex == -1 || bestPing > duration {
if bestIndex == -1 || pings[best] > pings[server.Hostname] {
best = server.Hostname
bestIndex = i bestIndex = i
bestPing = duration
} }
} }
} }