mirror of
https://github.com/mautrix/discord.git
synced 2025-03-14 14:15:37 +00:00
43 lines
773 B
Go
43 lines
773 B
Go
package config
|
|
|
|
import (
|
|
"strings"
|
|
|
|
as "maunium.net/go/mautrix/appservice"
|
|
)
|
|
|
|
type provisioning struct {
|
|
Prefix string `yaml:"prefix"`
|
|
SharedSecret string `yaml:"shared_secret"`
|
|
}
|
|
|
|
func (p *provisioning) validate() error {
|
|
if p.Prefix == "" {
|
|
p.Prefix = "/_matrix/provision/v1"
|
|
}
|
|
|
|
if strings.ToLower(p.SharedSecret) == "generate" {
|
|
p.SharedSecret = as.RandomString(64)
|
|
|
|
configUpdated = true
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (p *provisioning) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
|
type rawProvisioning provisioning
|
|
|
|
raw := rawProvisioning{}
|
|
if err := unmarshal(&raw); err != nil {
|
|
return err
|
|
}
|
|
|
|
*p = provisioning(raw)
|
|
|
|
return p.validate()
|
|
}
|
|
|
|
func (p *provisioning) Enabled() bool {
|
|
return strings.ToLower(p.SharedSecret) != "disable"
|
|
}
|