Files
gluetun/internal/constants/servers.go
Quentin McGaw (desktop) da4d528463 Maint: hardcoded data in JSON embedded file
- 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
2021-07-20 03:01:26 +00:00

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
}