matching env secrets with config file

This commit is contained in:
Erik Winter 2023-06-13 19:29:54 +02:00
parent 815b7e0808
commit bfcba9a464
1 changed files with 30 additions and 0 deletions

30
main.go
View File

@ -1,6 +1,7 @@
package main package main
import ( import (
"fmt"
"os" "os"
"os/signal" "os/signal"
@ -18,6 +19,35 @@ func main() {
logger.Error(err.Error()) logger.Error(err.Error())
os.Exit(1) os.Exit(1)
} }
type Credentials struct {
Password string
AccessKey string
}
credentials := make(map[string]Credentials)
for i := 0; i < len(config.Bots); i++ {
user := getParam(fmt.Sprintf("MATRIX_BOT%d_ID", i), "")
if user == "" {
logger.Error("missing user id", slog.Int("user", i))
os.Exit(1)
}
credentials[user] = Credentials{
Password: getParam(fmt.Sprintf("MATRIX_BOT%d_PASSWORD", i), ""),
AccessKey: getParam(fmt.Sprintf("MATRIX_BOT%d_ACCESSKEY", i), ""),
}
}
for i, bc := range config.Bots {
creds, ok := credentials[bc.UserID]
if !ok {
logger.Error("missing credentials", slog.Int("user", i))
os.Exit(1)
}
config.Bots[i].UserPassword = creds.Password
config.Bots[i].UserAccessKey = creds.AccessKey
}
config.OpenAI = bot.ConfigOpenAI{
APIKey: getParam("OPENAI_API_KEY", ""),
}
logger.Info("loaded config", slog.Int("bots", len(config.Bots))) logger.Info("loaded config", slog.Int("bots", len(config.Bots)))
for _, bc := range config.Bots { for _, bc := range config.Bots {