From 5b3811ce9686618105539fd1fbd47990dbc461c9 Mon Sep 17 00:00:00 2001 From: Gary Kramlich Date: Thu, 18 Nov 2021 02:03:42 -0600 Subject: [PATCH] Start of the config --- config/appservice.go | 10 ++++++++++ config/config.go | 35 +++++++++++++++++++++++++++++++++++ config/homeserver.go | 7 +++++++ go.mod | 5 ++++- go.sum | 7 +++++++ 5 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 config/appservice.go create mode 100644 config/config.go create mode 100644 config/homeserver.go diff --git a/config/appservice.go b/config/appservice.go new file mode 100644 index 0000000..24f62eb --- /dev/null +++ b/config/appservice.go @@ -0,0 +1,10 @@ +package config + +type appservice struct { + Address string `yaml:"address"` + Hostname string `yaml:"hostname"` + Port uint16 `yaml:"port"` + + ASToken string `yaml:"as_token"` + HSToken string `yaml:"hs_token"` +} diff --git a/config/config.go b/config/config.go new file mode 100644 index 0000000..d0093c7 --- /dev/null +++ b/config/config.go @@ -0,0 +1,35 @@ +package config + +import ( + "io/ioutil" + + "gopkg.in/yaml.v2" +) + +type Config struct { + Homeserver homeserver `yaml:"homeserver"` + Appservice appservice `yaml:"appservice"` +} + +func FromBytes(data []byte) (*Config, error) { + cfg := Config{} + + if err := yaml.Unmarshal(data, &cfg); err != nil { + return nil, err + } + + return &cfg, nil +} + +func FromString(str string) (*Config, error) { + return FromBytes([]byte(str)) +} + +func FromFile(filename string) (*Config, error) { + data, err := ioutil.ReadFile(filename) + if err != nil { + return nil, err + } + + return FromBytes(data) +} diff --git a/config/homeserver.go b/config/homeserver.go new file mode 100644 index 0000000..651ac6a --- /dev/null +++ b/config/homeserver.go @@ -0,0 +1,7 @@ +package config + +type homeserver struct { + Address string `yaml:"address"` + Domain string `yaml:"domain"` + StatusEndpoint string `yaml:"status_endpoint"` +} diff --git a/go.mod b/go.mod index eb30d66..c323554 100644 --- a/go.mod +++ b/go.mod @@ -2,6 +2,9 @@ module gitlab.com/beeper/discord go 1.17 -require github.com/alecthomas/kong v0.2.18 +require ( + github.com/alecthomas/kong v0.2.18 + gopkg.in/yaml.v2 v2.4.0 +) require github.com/pkg/errors v0.9.1 // indirect diff --git a/go.sum b/go.sum index ee76b12..89b39b0 100644 --- a/go.sum +++ b/go.sum @@ -1,12 +1,19 @@ github.com/alecthomas/kong v0.2.18 h1:H05f55eRO5f9gusObxgjpqKtozJNvniqMTuOPnf+2SQ= github.com/alecthomas/kong v0.2.18/go.mod h1:ka3VZ8GZNPXv9Ov+j4YNLkI8mTuhXyr/0ktSlqIydQQ= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=