Cyberghost support (#168)

* Host finder CLI for cyberghost
* Resolver program updated with Cyberghost data
* Gluetun cli clientkey subcommand
This commit is contained in:
Quentin McGaw
2020-06-13 10:43:47 -04:00
committed by GitHub
parent bdcadf09ec
commit 4f502abcf8
19 changed files with 1124 additions and 6 deletions

View File

@@ -0,0 +1,29 @@
package params
import (
"strings"
libparams "github.com/qdm12/golibs/params"
"github.com/qdm12/private-internet-access-docker/internal/constants"
"github.com/qdm12/private-internet-access-docker/internal/models"
)
// GetCyberghostGroup obtains the server group for the Cyberghost server from the
// environment variable CYBERGHOST_GROUP
func (p *reader) GetCyberghostGroup() (region models.CyberghostGroup, err error) {
s, err := p.envParams.GetValueIfInside("CYBERGHOST_GROUP", constants.CyberghostGroupChoices())
return models.CyberghostGroup(strings.ToLower(s)), err
}
// GetCyberghostRegion obtains the country name for the Cyberghost server from the
// environment variable REGION
func (p *reader) GetCyberghostRegion() (region models.CyberghostRegion, err error) {
s, err := p.envParams.GetValueIfInside("REGION", constants.CyberghostRegionChoices())
return models.CyberghostRegion(strings.ToLower(s)), err
}
// GetCyberghostClientKey obtains the one line client key to use for openvpn from the
// environment variable CLIENT_KEY
func (p *reader) GetCyberghostClientKey() (clientKey string, err error) {
return p.envParams.GetEnv("CLIENT_KEY", libparams.Compulsory(), libparams.CaseSensitiveValue())
}

View File

@@ -69,6 +69,11 @@ type Reader interface {
// Surfshark getters
GetSurfsharkRegion() (country models.SurfsharkRegion, err error)
// Cyberghost getters
GetCyberghostGroup() (region models.CyberghostGroup, err error)
GetCyberghostRegion() (region models.CyberghostRegion, err error)
GetCyberghostClientKey() (clientKey string, err error)
// Shadowsocks getters
GetShadowSocks() (activated bool, err error)
GetShadowSocksLog() (activated bool, err error)
@@ -109,7 +114,7 @@ func NewReader(logger logging.Logger) Reader {
// GetVPNSP obtains the VPN service provider to use from the environment variable VPNSP
func (r *reader) GetVPNSP() (vpnServiceProvider models.VPNProvider, err error) {
s, err := r.envParams.GetValueIfInside("VPNSP", []string{"pia", "private internet access", "mullvad", "windscribe", "surfshark"})
s, err := r.envParams.GetValueIfInside("VPNSP", []string{"pia", "private internet access", "mullvad", "windscribe", "surfshark", "cyberghost"})
if s == "pia" {
s = "private internet access"
}