diff --git a/localconfig/localconfig.go b/localconfig/localconfig.go index ed2840c..6e2494d 100644 --- a/localconfig/localconfig.go +++ b/localconfig/localconfig.go @@ -2,16 +2,17 @@ package localconfig import ( "io" - "io/ioutil" + "os" "strings" yaml "gopkg.in/yaml.v2" ) type Config struct { - Clusters []*Cluster - Hosts []*Host - SSLConfig string + Clusters []*Cluster + Hosts []*Host + HostTemplates []*Host + SSLConfig string } type Cluster struct { @@ -29,7 +30,7 @@ func FromBytes(data []byte) (*Config, error) { } func FromFile(path string) (*Config, error) { - ba, err := ioutil.ReadFile(path) + ba, err := os.ReadFile(path) if err != nil { return nil, err } @@ -68,6 +69,15 @@ func (c *Config) Host(name string) *Host { return nil } +func (c *Config) HostTemplate(name string) *Host { + for _, host := range c.HostTemplates { + if host.Name == name { + return host + } + } + return nil +} + func (c *Config) HostByIP(ip string) *Host { for _, host := range c.Hosts { for _, hostIP := range host.IPs {