mirror of
https://github.com/qdm12/gluetun.git
synced 2026-06-10 14:22:30 +02:00
45 lines
1.3 KiB
Go
45 lines
1.3 KiB
Go
package storage
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"path/filepath"
|
|
|
|
serversmodule "github.com/qdm12/gluetun-servers/pkg/servers"
|
|
"github.com/qdm12/gluetun/internal/constants/providers"
|
|
"github.com/qdm12/gluetun/internal/models"
|
|
)
|
|
|
|
func parseHardcodedServers() (allServers models.AllServers) {
|
|
allProviders := providers.All()
|
|
|
|
const version = 1
|
|
allServers.ProviderToServers = make(map[string]models.Servers, len(allProviders))
|
|
allServers.Version = version
|
|
for _, provider := range allProviders {
|
|
filename := provider + ".json"
|
|
providerFile, err := serversmodule.Files.Open(filename)
|
|
if err != nil {
|
|
panic(fmt.Sprintf("reading embedded provider file %s for %s: %s", filename, provider, err))
|
|
}
|
|
defer providerFile.Close() // no-op
|
|
|
|
var providerServers models.Servers
|
|
decoder := json.NewDecoder(providerFile)
|
|
err = decoder.Decode(&providerServers)
|
|
if err != nil {
|
|
panic(fmt.Sprintf("JSON decoding embedded provider file %s for %s: %s",
|
|
filename, provider, err))
|
|
} else if providerServers.Filepath != "" {
|
|
panic(fmt.Sprintf("embedded provider file %s for %s should not have filepath set",
|
|
filename, provider))
|
|
}
|
|
|
|
const serversPath = "/gluetun/servers/"
|
|
providerServers.Filepath = filepath.Join(serversPath, filename)
|
|
allServers.ProviderToServers[provider] = providerServers
|
|
}
|
|
|
|
return allServers
|
|
}
|