New PIA servers support (#227)
* Adapt storage: SyncServers write to file option, export FlushToFile * CLI built-in updater for old and new PIA servers * Update hardcoded IP addresses for PIA old and new servers * Add PIA old to allServers struct and update timestamps * Adapt code to work with new and old PIA servers * Remove PIA subdomains (unneeded) from resolver tool
This commit is contained in:
@@ -18,13 +18,14 @@ func countServers(allServers models.AllServers) int {
|
||||
len(allServers.Mullvad.Servers) +
|
||||
len(allServers.Nordvpn.Servers) +
|
||||
len(allServers.Pia.Servers) +
|
||||
len(allServers.PiaOld.Servers) +
|
||||
len(allServers.Purevpn.Servers) +
|
||||
len(allServers.Surfshark.Servers) +
|
||||
len(allServers.Vyprvpn.Servers) +
|
||||
len(allServers.Windscribe.Servers)
|
||||
}
|
||||
|
||||
func (s *storage) SyncServers(hardcodedServers models.AllServers) (allServers models.AllServers, err error) {
|
||||
func (s *storage) SyncServers(hardcodedServers models.AllServers, write bool) (allServers models.AllServers, err error) {
|
||||
// Eventually read file
|
||||
var serversOnFile models.AllServers
|
||||
_, err = s.osStat(jsonFilepath)
|
||||
@@ -43,10 +44,10 @@ func (s *storage) SyncServers(hardcodedServers models.AllServers) (allServers mo
|
||||
allServers = s.mergeServers(hardcodedServers, serversOnFile)
|
||||
|
||||
// Eventually write file
|
||||
if reflect.DeepEqual(serversOnFile, allServers) {
|
||||
if !write || reflect.DeepEqual(serversOnFile, allServers) {
|
||||
return allServers, nil
|
||||
}
|
||||
return allServers, s.flushToFile(allServers)
|
||||
return allServers, s.FlushToFile(allServers)
|
||||
}
|
||||
|
||||
func (s *storage) readFromFile() (servers models.AllServers, err error) {
|
||||
@@ -60,7 +61,7 @@ func (s *storage) readFromFile() (servers models.AllServers, err error) {
|
||||
return servers, nil
|
||||
}
|
||||
|
||||
func (s *storage) flushToFile(servers models.AllServers) error {
|
||||
func (s *storage) FlushToFile(servers models.AllServers) error {
|
||||
bytes, err := json.MarshalIndent(servers, "", " ")
|
||||
if err != nil {
|
||||
return fmt.Errorf("cannot write to file: %w", err)
|
||||
|
||||
Reference in New Issue
Block a user