Files
mautrix-discord/config/bridge.go
Gary Kramlich 2b63ddc6b8 Rename the config structs setDefaults to validate
This allows us to check for some required values and give an easy to respond
to error at startup rather than a lot of validation during run time.
2021-11-19 16:53:43 -06:00

51 lines
805 B
Go

package config
import (
"bytes"
"text/template"
)
type bridge struct {
UsernameTemplate string `yaml:"username_template"`
usernameTemplate *template.Template `yaml:"-"`
}
func (b *bridge) validate() 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
raw := rawBridge{}
err := unmarshal(&raw)
if err != nil {
return err
}
*b = bridge(raw)
return b.validate()
}
func (b bridge) FormatUsername(userid string) string {
var buffer bytes.Buffer
b.usernameTemplate.Execute(&buffer, userid)
return buffer.String()
}