@@ -17,29 +17,16 @@ limitations under the License.
1717package main
1818
1919import (
20- "errors"
2120 "flag"
22- "fmt"
2321 "os"
2422 "os/signal"
2523 "runtime"
2624 "runtime/pprof"
27- "strconv"
28- "strings"
2925 "syscall"
3026
3127 "github.com/sirupsen/logrus"
32- yaml "gopkg.in/yaml.v3"
33- "maunium.net/go/mautrix/id"
3428)
3529
36- type Config struct {
37- UserID id.UserID
38- HomeserverURL string
39- AccessToken string
40- Timeout int
41- }
42-
4330var config * Config
4431
4532var logTime = flag .Bool ("logTime" , false , "whether or not to print time and date in logs" )
@@ -97,64 +84,6 @@ func initLogging(logTime *bool) {
9784 logrus .SetFormatter (formatter )
9885}
9986
100- var ErrEnvVarNotSet = errors .New ("environment variable not set or invalid" )
101-
102- func EnvVarNotSetError (variable string ) error {
103- return fmt .Errorf ("%s: %w" , variable , ErrEnvVarNotSet )
104- }
105-
106- // / Tries to load the config from environment variables.
107- // / Returns an error if not all environment variables are set.
108- func loadConfigFromEnv () (* Config , error ) {
109- userID := strings .TrimSpace (os .Getenv ("USER_ID" ))
110- if userID == "" {
111- return nil , EnvVarNotSetError ("USER_ID" )
112- }
113-
114- homeserverURL := strings .TrimSpace (os .Getenv ("HOMESERVER_URL" ))
115- if homeserverURL == "" {
116- return nil , EnvVarNotSetError ("HOMESERVER_URL" )
117- }
118-
119- accessToken := strings .TrimSpace (os .Getenv ("ACCESS_TOKEN" ))
120- if accessToken == "" {
121- return nil , EnvVarNotSetError ("ACCESS_TOKEN" )
122- }
123-
124- timeoutStr := strings .TrimSpace (os .Getenv ("TIMEOUT" ))
125- if timeoutStr == "" {
126- return nil , EnvVarNotSetError ("TIMEOUT" )
127- }
128-
129- timeout , err := strconv .Atoi (timeoutStr )
130- if err != nil {
131- return nil , EnvVarNotSetError ("TIMEOUT Format" )
132- }
133-
134- return & Config {
135- UserID : id .UserID (userID ),
136- HomeserverURL : homeserverURL ,
137- AccessToken : accessToken ,
138- Timeout : timeout ,
139- }, nil
140- }
141-
142- func loadConfig (configFilePath string ) (* Config , error ) {
143- logrus .WithField ("path" , configFilePath ).Info ("loading config" )
144-
145- file , err := os .ReadFile (configFilePath )
146- if err != nil {
147- return nil , fmt .Errorf ("failed to read file: %w" , err )
148- }
149- var config Config
150-
151- if err := yaml .Unmarshal (file , & config ); err != nil {
152- return nil , fmt .Errorf ("failed to unmarshal YAML file: %w" , err )
153- }
154-
155- return & config , nil
156- }
157-
15887func killListener (c chan os.Signal , beforeExit []func ()) {
15988 <- c
16089
@@ -192,7 +121,7 @@ func main() {
192121 if err != nil {
193122 logrus .WithError (err ).Info ("failed to load config from environment variables, trying to load from file" )
194123
195- if config , err = loadConfig (* configFilePath ); err != nil {
124+ if config , err = loadConfigFromPath (* configFilePath ); err != nil {
196125 logrus .WithError (err ).Fatal ("failed to load config file" )
197126 }
198127 }
0 commit comments