bridge.go 659 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package config
  2. import (
  3. "bytes"
  4. "text/template"
  5. )
  6. type bridge struct {
  7. UsernameTemplate string `yaml:"username_template"`
  8. usernameTemplate *template.Template `yaml:"-"`
  9. }
  10. func (b *bridge) UnmarshalYAML(unmarshal func(interface{}) error) error {
  11. type rawBridge bridge
  12. raw := rawBridge{}
  13. err := unmarshal(&raw)
  14. if err != nil {
  15. return err
  16. }
  17. raw.usernameTemplate, err = template.New("username").Parse(raw.UsernameTemplate)
  18. if err != nil {
  19. return err
  20. }
  21. *b = bridge(raw)
  22. return nil
  23. }
  24. func (b bridge) FormatUsername(userid string) string {
  25. var buffer bytes.Buffer
  26. b.usernameTemplate.Execute(&buffer, userid)
  27. return buffer.String()
  28. }