mirror of
https://github.com/pushbits/server.git
synced 2025-05-02 11:46:17 +02:00
43 lines
972 B
Go
43 lines
972 B
Go
package configuration
|
|
|
|
import (
|
|
"github.com/jinzhu/configor"
|
|
)
|
|
|
|
// Configuration holds values that can be configured by the user.
|
|
type Configuration struct {
|
|
Database struct {
|
|
Dialect string `default:"sqlite3"`
|
|
Connection string `default:"pushbits.db"`
|
|
}
|
|
Admin struct {
|
|
Name string `default:"admin"`
|
|
Password string `default:"admin"`
|
|
MatrixID string `required:"true"`
|
|
}
|
|
Matrix struct {
|
|
Homeserver string `default:"https://matrix.org"`
|
|
Username string `required:"true"`
|
|
Password string `required:"true"`
|
|
}
|
|
}
|
|
|
|
func configFiles() []string {
|
|
return []string{"config.yml"}
|
|
}
|
|
|
|
// Get returns the configuration extracted from env variables or config file.
|
|
func Get() *Configuration {
|
|
config := new(Configuration)
|
|
|
|
err := configor.New(&configor.Config{
|
|
Environment: "production",
|
|
ENVPrefix: "PUSHBITS",
|
|
ErrorOnUnmatchedKeys: true,
|
|
}).Load(config, configFiles()...)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
return config
|
|
}
|