Make sure we always load our default config values

This commit is contained in:
Gary Kramlich
2021-11-19 16:31:19 -06:00
parent 09911a11e3
commit 5a11f49dbe
4 changed files with 96 additions and 6 deletions

View File

@@ -1,6 +1,8 @@
package config
import (
"fmt"
"bytes"
"text/template"
)
@@ -11,6 +13,21 @@ type bridge struct {
usernameTemplate *template.Template `yaml:"-"`
}
func (b *bridge) setDefaults() error {
var err error
if b.UsernameTemplate == "" {
b.UsernameTemplate = "Discord_{{.}}"
}
b.usernameTemplate, err = template.New("username").Parse(b.UsernameTemplate)
if err != nil {
return err
}
return nil
}
func (b *bridge) UnmarshalYAML(unmarshal func(interface{}) error) error {
type rawBridge bridge
@@ -21,19 +38,16 @@ func (b *bridge) UnmarshalYAML(unmarshal func(interface{}) error) error {
return err
}
raw.usernameTemplate, err = template.New("username").Parse(raw.UsernameTemplate)
if err != nil {
return err
}
*b = bridge(raw)
return nil
return b.setDefaults()
}
func (b bridge) FormatUsername(userid string) string {
var buffer bytes.Buffer
fmt.Printf("bridge: %#v\n", b)
b.usernameTemplate.Execute(&buffer, userid)
return buffer.String()