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
This commit is contained in:
@@ -1,15 +0,0 @@
|
||||
package cyberghost
|
||||
|
||||
import "github.com/qdm12/gluetun/internal/models"
|
||||
|
||||
// Stringify converts servers to code string format.
|
||||
func Stringify(servers []models.CyberghostServer) (s string) {
|
||||
s = "func CyberghostServers() []models.CyberghostServer {\n"
|
||||
s += " return []models.CyberghostServer{\n"
|
||||
for _, server := range servers {
|
||||
s += " " + server.String() + ",\n"
|
||||
}
|
||||
s += " }\n"
|
||||
s += "}"
|
||||
return s
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package fastestvpn
|
||||
|
||||
import "github.com/qdm12/gluetun/internal/models"
|
||||
|
||||
func Stringify(servers []models.FastestvpnServer) (s string) {
|
||||
s = "func FastestvpnServers() []models.FastestvpnServer {\n"
|
||||
s += " return []models.FastestvpnServer{\n"
|
||||
for _, server := range servers {
|
||||
s += " " + server.String() + ",\n"
|
||||
}
|
||||
s += " }\n"
|
||||
s += "}"
|
||||
return s
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package hidemyass
|
||||
|
||||
import "github.com/qdm12/gluetun/internal/models"
|
||||
|
||||
func Stringify(servers []models.HideMyAssServer) (s string) {
|
||||
s = "func HideMyAssServers() []models.HideMyAssServer {\n"
|
||||
s += " return []models.HideMyAssServer{\n"
|
||||
for _, server := range servers {
|
||||
s += " " + server.String() + ",\n"
|
||||
}
|
||||
s += " }\n"
|
||||
s += "}"
|
||||
return s
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package ipvanish
|
||||
|
||||
import "github.com/qdm12/gluetun/internal/models"
|
||||
|
||||
func Stringify(servers []models.IpvanishServer) (s string) {
|
||||
s = "func IpvanishServers() []models.IpvanishServer {\n"
|
||||
s += " return []models.IpvanishServer{\n"
|
||||
for _, server := range servers {
|
||||
s += " " + server.String() + ",\n"
|
||||
}
|
||||
s += " }\n"
|
||||
s += "}"
|
||||
return s
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
package ipvanish
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/qdm12/gluetun/internal/models"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func Test_Stringify(t *testing.T) {
|
||||
t.Parallel()
|
||||
testCases := map[string]struct {
|
||||
servers []models.IpvanishServer
|
||||
s string
|
||||
}{
|
||||
"no server": {
|
||||
s: `func IpvanishServers() []models.IpvanishServer {
|
||||
return []models.IpvanishServer{
|
||||
}
|
||||
}`,
|
||||
},
|
||||
"multiple servers": {
|
||||
servers: []models.IpvanishServer{
|
||||
{Country: "A"},
|
||||
{Country: "B"},
|
||||
},
|
||||
s: `func IpvanishServers() []models.IpvanishServer {
|
||||
return []models.IpvanishServer{
|
||||
{Country: "A", City: "", Hostname: "", TCP: false, UDP: false, IPs: []net.IP{}},
|
||||
{Country: "B", City: "", Hostname: "", TCP: false, UDP: false, IPs: []net.IP{}},
|
||||
}
|
||||
}`,
|
||||
},
|
||||
}
|
||||
for name, testCase := range testCases {
|
||||
testCase := testCase
|
||||
t.Run(name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
s := Stringify(testCase.servers)
|
||||
assert.Equal(t, testCase.s, s)
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package ivpn
|
||||
|
||||
import "github.com/qdm12/gluetun/internal/models"
|
||||
|
||||
func Stringify(servers []models.IvpnServer) (s string) {
|
||||
s = "func IvpnServers() []models.IvpnServer {\n"
|
||||
s += " return []models.IvpnServer{\n"
|
||||
for _, server := range servers {
|
||||
s += " " + server.String() + ",\n"
|
||||
}
|
||||
s += " }\n"
|
||||
s += "}"
|
||||
return s
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
package ivpn
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/qdm12/gluetun/internal/models"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func Test_Stringify(t *testing.T) {
|
||||
t.Parallel()
|
||||
testCases := map[string]struct {
|
||||
servers []models.IvpnServer
|
||||
s string
|
||||
}{
|
||||
"no server": {
|
||||
s: `func IvpnServers() []models.IvpnServer {
|
||||
return []models.IvpnServer{
|
||||
}
|
||||
}`,
|
||||
},
|
||||
"multiple servers": {
|
||||
servers: []models.IvpnServer{
|
||||
{Country: "A"},
|
||||
{Country: "B"},
|
||||
},
|
||||
s: `func IvpnServers() []models.IvpnServer {
|
||||
return []models.IvpnServer{
|
||||
{Country: "A", City: "", Hostname: "", TCP: false, UDP: false, IPs: []net.IP{}},
|
||||
{Country: "B", City: "", Hostname: "", TCP: false, UDP: false, IPs: []net.IP{}},
|
||||
}
|
||||
}`,
|
||||
},
|
||||
}
|
||||
for name, testCase := range testCases {
|
||||
testCase := testCase
|
||||
t.Run(name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
s := Stringify(testCase.servers)
|
||||
assert.Equal(t, testCase.s, s)
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package mullvad
|
||||
|
||||
import "github.com/qdm12/gluetun/internal/models"
|
||||
|
||||
func Stringify(servers []models.MullvadServer) (s string) {
|
||||
s = "func MullvadServers() []models.MullvadServer {\n"
|
||||
s += " return []models.MullvadServer{\n"
|
||||
for _, server := range servers {
|
||||
s += " " + server.String() + ",\n"
|
||||
}
|
||||
s += " }\n"
|
||||
s += "}"
|
||||
return s
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
package mullvad
|
||||
|
||||
import (
|
||||
"net"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/qdm12/gluetun/internal/models"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func Test_Stringify(t *testing.T) {
|
||||
servers := []models.MullvadServer{{
|
||||
Country: "webland",
|
||||
City: "webcity",
|
||||
Hostname: "hostname",
|
||||
ISP: "not nsa",
|
||||
Owned: true,
|
||||
IPs: []net.IP{{1, 1, 1, 1}},
|
||||
IPsV6: []net.IP{{1, 1, 1, 1}},
|
||||
}}
|
||||
//nolint:lll
|
||||
expected := `
|
||||
func MullvadServers() []models.MullvadServer {
|
||||
return []models.MullvadServer{
|
||||
{Country: "webland", City: "webcity", Hostname: "hostname", ISP: "not nsa", Owned: true, IPs: []net.IP{{1, 1, 1, 1}}, IPsV6: []net.IP{{1, 1, 1, 1}}},
|
||||
}
|
||||
}
|
||||
`
|
||||
expected = strings.TrimPrefix(strings.TrimSuffix(expected, "\n"), "\n")
|
||||
s := Stringify(servers)
|
||||
assert.Equal(t, expected, s)
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package nordvpn
|
||||
|
||||
import "github.com/qdm12/gluetun/internal/models"
|
||||
|
||||
func Stringify(servers []models.NordvpnServer) (s string) {
|
||||
s = "func NordvpnServers() []models.NordvpnServer {\n"
|
||||
s += " return []models.NordvpnServer{\n"
|
||||
for _, server := range servers {
|
||||
s += " " + server.String() + ",\n"
|
||||
}
|
||||
s += " }\n"
|
||||
s += "}"
|
||||
return s
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package pia
|
||||
|
||||
import "github.com/qdm12/gluetun/internal/models"
|
||||
|
||||
func Stringify(servers []models.PIAServer) (s string) {
|
||||
s = "func PIAServers() []models.PIAServer {\n"
|
||||
s += " return []models.PIAServer{\n"
|
||||
for _, server := range servers {
|
||||
s += " " + server.String() + ",\n"
|
||||
}
|
||||
s += " }\n"
|
||||
s += "}"
|
||||
return s
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package privado
|
||||
|
||||
import "github.com/qdm12/gluetun/internal/models"
|
||||
|
||||
func Stringify(servers []models.PrivadoServer) (s string) {
|
||||
s = "func PrivadoServers() []models.PrivadoServer {\n"
|
||||
s += " return []models.PrivadoServer{\n"
|
||||
for _, server := range servers {
|
||||
s += " " + server.String() + ",\n"
|
||||
}
|
||||
s += " }\n"
|
||||
s += "}"
|
||||
return s
|
||||
}
|
||||
@@ -48,7 +48,11 @@ func parseFilename(fileName string) (
|
||||
errNotEnoughParts, fileName)
|
||||
}
|
||||
countryCode, city = parts[0], parts[1]
|
||||
|
||||
countryCode = strings.ToLower(countryCode)
|
||||
if countryCode == "co" && strings.HasPrefix(city, "Bogot") {
|
||||
city = "Bogota"
|
||||
}
|
||||
|
||||
return countryCode, city, nil
|
||||
}
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
package privatevpn
|
||||
|
||||
import "github.com/qdm12/gluetun/internal/models"
|
||||
|
||||
func Stringify(servers []models.PrivatevpnServer) (s string) {
|
||||
s = "func PrivatevpnServers() []models.PrivatevpnServer {\n"
|
||||
s += " return []models.PrivatevpnServer{\n"
|
||||
for _, server := range servers {
|
||||
s += " " + server.String() + ",\n"
|
||||
}
|
||||
s += " }\n"
|
||||
s += "}"
|
||||
return s
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package protonvpn
|
||||
|
||||
import "github.com/qdm12/gluetun/internal/models"
|
||||
|
||||
func Stringify(servers []models.ProtonvpnServer) (s string) {
|
||||
s = "func ProtonvpnServers() []models.ProtonvpnServer {\n"
|
||||
s += " return []models.ProtonvpnServer{\n"
|
||||
for _, server := range servers {
|
||||
s += " " + server.String() + ",\n"
|
||||
}
|
||||
s += " }\n"
|
||||
s += "}"
|
||||
return s
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package purevpn
|
||||
|
||||
import "github.com/qdm12/gluetun/internal/models"
|
||||
|
||||
func Stringify(servers []models.PurevpnServer) (s string) {
|
||||
s = "func PurevpnServers() []models.PurevpnServer {\n"
|
||||
s += " return []models.PurevpnServer{\n"
|
||||
for _, server := range servers {
|
||||
s += " " + server.String() + ",\n"
|
||||
}
|
||||
s += " }\n"
|
||||
s += "}"
|
||||
return s
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package surfshark
|
||||
|
||||
import "github.com/qdm12/gluetun/internal/models"
|
||||
|
||||
func Stringify(servers []models.SurfsharkServer) (s string) {
|
||||
s = "func SurfsharkServers() []models.SurfsharkServer {\n"
|
||||
s += " return []models.SurfsharkServer{\n"
|
||||
for _, server := range servers {
|
||||
s += " " + server.String() + ",\n"
|
||||
}
|
||||
s += " }\n"
|
||||
s += "}"
|
||||
return s
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package torguard
|
||||
|
||||
import "github.com/qdm12/gluetun/internal/models"
|
||||
|
||||
func Stringify(servers []models.TorguardServer) (s string) {
|
||||
s = "func TorguardServers() []models.TorguardServer {\n"
|
||||
s += " return []models.TorguardServer{\n"
|
||||
for _, server := range servers {
|
||||
s += " " + server.String() + ",\n"
|
||||
}
|
||||
s += " }\n"
|
||||
s += "}"
|
||||
return s
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package vpnunlimited
|
||||
|
||||
import "github.com/qdm12/gluetun/internal/models"
|
||||
|
||||
func Stringify(servers []models.VPNUnlimitedServer) (s string) {
|
||||
s = "func VPNUnlimitedServers() []models.VPNUnlimitedServer {\n"
|
||||
s += " return []models.VPNUnlimitedServer{\n"
|
||||
for _, server := range servers {
|
||||
s += " " + server.String() + ",\n"
|
||||
}
|
||||
s += " }\n"
|
||||
s += "}"
|
||||
return s
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package vyprvpn
|
||||
|
||||
import "github.com/qdm12/gluetun/internal/models"
|
||||
|
||||
func Stringify(servers []models.VyprvpnServer) (s string) {
|
||||
s = "func VyprvpnServers() []models.VyprvpnServer {\n"
|
||||
s += " return []models.VyprvpnServer{\n"
|
||||
for _, server := range servers {
|
||||
s += " " + server.String() + ",\n"
|
||||
}
|
||||
s += " }\n"
|
||||
s += "}"
|
||||
return s
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package windscribe
|
||||
|
||||
import "github.com/qdm12/gluetun/internal/models"
|
||||
|
||||
func Stringify(servers []models.WindscribeServer) (s string) {
|
||||
s = "func WindscribeServers() []models.WindscribeServer {\n"
|
||||
s += " return []models.WindscribeServer{\n"
|
||||
for _, server := range servers {
|
||||
s += " " + server.String() + ",\n"
|
||||
}
|
||||
s += " }\n"
|
||||
s += "}"
|
||||
return s
|
||||
}
|
||||
Reference in New Issue
Block a user