Make sure we always load our default config values
This commit is contained in:
@@ -12,3 +12,28 @@ type appservice struct {
|
|||||||
ASToken string `yaml:"as_token"`
|
ASToken string `yaml:"as_token"`
|
||||||
HSToken string `yaml:"hs_token"`
|
HSToken string `yaml:"hs_token"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (a *appservice) setDefaults() error {
|
||||||
|
if a.ID == "" {
|
||||||
|
a.ID = "discord"
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := a.Bot.setDefaults(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *appservice) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
||||||
|
type rawAppservice appservice
|
||||||
|
|
||||||
|
raw := rawAppservice{}
|
||||||
|
if err := unmarshal(&raw); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
*a = appservice(raw)
|
||||||
|
|
||||||
|
return a.setDefaults()
|
||||||
|
}
|
||||||
|
|||||||
@@ -5,3 +5,29 @@ type bot struct {
|
|||||||
Displayname string `yaml:"displayname"`
|
Displayname string `yaml:"displayname"`
|
||||||
Avatar string `yaml:"avatar"`
|
Avatar string `yaml:"avatar"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (b *bot) setDefaults() error {
|
||||||
|
if b.Username == "" {
|
||||||
|
b.Username = "discordbot"
|
||||||
|
}
|
||||||
|
|
||||||
|
if b.Displayname == "" {
|
||||||
|
b.Displayname = "Discord Bridge Bot"
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b *bot) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
||||||
|
type rawBot bot
|
||||||
|
|
||||||
|
raw := rawBot{}
|
||||||
|
|
||||||
|
if err := unmarshal(&raw); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
*b = bot(raw)
|
||||||
|
|
||||||
|
return b.setDefaults()
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package config
|
package config
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
"bytes"
|
"bytes"
|
||||||
"text/template"
|
"text/template"
|
||||||
)
|
)
|
||||||
@@ -11,6 +13,21 @@ type bridge struct {
|
|||||||
usernameTemplate *template.Template `yaml:"-"`
|
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 {
|
func (b *bridge) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
||||||
type rawBridge bridge
|
type rawBridge bridge
|
||||||
|
|
||||||
@@ -21,19 +38,16 @@ func (b *bridge) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
raw.usernameTemplate, err = template.New("username").Parse(raw.UsernameTemplate)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
*b = bridge(raw)
|
*b = bridge(raw)
|
||||||
|
|
||||||
return nil
|
return b.setDefaults()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b bridge) FormatUsername(userid string) string {
|
func (b bridge) FormatUsername(userid string) string {
|
||||||
var buffer bytes.Buffer
|
var buffer bytes.Buffer
|
||||||
|
|
||||||
|
fmt.Printf("bridge: %#v\n", b)
|
||||||
|
|
||||||
b.usernameTemplate.Execute(&buffer, userid)
|
b.usernameTemplate.Execute(&buffer, userid)
|
||||||
|
|
||||||
return buffer.String()
|
return buffer.String()
|
||||||
|
|||||||
@@ -12,6 +12,29 @@ type Config struct {
|
|||||||
Bridge bridge `yaml:"bridge"`
|
Bridge bridge `yaml:"bridge"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (cfg *Config) setDefaults() error {
|
||||||
|
if err := cfg.Appservice.setDefaults(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := cfg.Bridge.setDefaults(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (cfg *Config) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
||||||
|
type rawConfig Config
|
||||||
|
|
||||||
|
raw := rawConfig{}
|
||||||
|
if err := unmarshal(&raw); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return cfg.setDefaults()
|
||||||
|
}
|
||||||
|
|
||||||
func FromBytes(data []byte) (*Config, error) {
|
func FromBytes(data []byte) (*Config, error) {
|
||||||
cfg := Config{}
|
cfg := Config{}
|
||||||
|
|
||||||
@@ -19,6 +42,8 @@ func FromBytes(data []byte) (*Config, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cfg.setDefaults()
|
||||||
|
|
||||||
return &cfg, nil
|
return &cfg, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user