ref: master
config/config.go
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
package config import ( "fmt" "github.com/BurntSushi/toml" ) type MatrixConfig struct { Homeserver struct { Domain string Address string } Appservice struct { Hostname string Port uint16 } Rooms struct { SpaceName string SpaceAlias string SpaceAvatarPath string PublicRoomName string PublicRoomAlias string PublicRoomAvatarPath string PatronsRoomName string PatronsRoomAlias string PatronsRoomAvatarPath string HeadOfficeRoomName string HeadOfficeRoomAlias string HeadOfficeRoomAvatarPath string } BotAvatarPath string } type DatabaseConfig struct { Schema string Username string Password string Host string Port uint16 Db string Params string } type ServerConfig struct { Host string Port int } func (c DatabaseConfig) Uri() string { return fmt.Sprintf("%s://%s:%s@%s:%d/%s?%s", c.Schema, c.Username, c.Password, c.Host, c.Port, c.Db, c.Params) } type Config struct { Matrix MatrixConfig Database DatabaseConfig Server ServerConfig } func Load(path string) (config Config, err error) { _, err = toml.DecodeFile(path, &config) return config, err } |