- Server information, versions and timestamps together in internal/constants/servers.json - breaking change: updater cli uses -enduser instead of -file - breaking change: updater cli uses -maintainer instead of -stdout - Fix: replace special last a character with 'a' from Bogota for PrivateVPN - Feat: do not write out servers and timestamp if no change was detected
30 lines
719 B
Go
30 lines
719 B
Go
package constants
|
|
|
|
import (
|
|
_ "embed"
|
|
"encoding/json"
|
|
|
|
"github.com/qdm12/gluetun/internal/models"
|
|
)
|
|
|
|
//go:embed servers.json
|
|
var allServersBytes []byte //nolint:gochecknoglobals
|
|
var allServers models.AllServers //nolint:gochecknoglobals
|
|
|
|
func init() { //nolint:gochecknoinits
|
|
// error returned covered by unit test
|
|
allServers, _ = parseAllServers(allServersBytes)
|
|
}
|
|
|
|
func parseAllServers(b []byte) (allServers models.AllServers, err error) {
|
|
err = json.Unmarshal(b, &allServers)
|
|
return allServers, err
|
|
}
|
|
|
|
func GetAllServers() (allServers models.AllServers) {
|
|
if allServers.Version == 0 { // not parsed yet - for unit tests mostly
|
|
allServers, _ = parseAllServers(allServersBytes)
|
|
}
|
|
return allServers
|
|
}
|