mirror of
https://github.com/lyx0/nourybot-matrix.git
synced 2024-11-13 19:49:54 +01:00
share database between dev and prod account
This commit is contained in:
parent
d2ce309228
commit
ede3ef039c
|
@ -31,8 +31,16 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var debug = flag.Bool("debug", false, "Enable debug logs")
|
var debug = flag.Bool("debug", false, "Enable debug logs")
|
||||||
|
var env = flag.String("env", "dev", "Environment to run in (dev/prod)")
|
||||||
|
|
||||||
//var database = flag.String("database", "test.db", "SQLite database path")
|
// var database = flag.String("database", "test.db", "SQLite database path")
|
||||||
|
type config struct {
|
||||||
|
homeserver string
|
||||||
|
username string
|
||||||
|
password string
|
||||||
|
database string
|
||||||
|
db_account_id string
|
||||||
|
}
|
||||||
|
|
||||||
type application struct {
|
type application struct {
|
||||||
MatrixClient *mautrix.Client
|
MatrixClient *mautrix.Client
|
||||||
|
@ -40,18 +48,28 @@ type application struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
var cfg config
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
err := godotenv.Load()
|
err := godotenv.Load()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
homeserver := os.Getenv("MATRIX_HOMESERVER")
|
if *env == "prod" {
|
||||||
username := os.Getenv("MATRIX_USERNAME")
|
cfg.homeserver = os.Getenv("PROD_MATRIX_HOMESERVER")
|
||||||
password := os.Getenv("MATRIX_PASSWORD")
|
cfg.username = os.Getenv("PROD_MATRIX_USERNAME")
|
||||||
database := os.Getenv("SQLITE_DATABASE")
|
cfg.password = os.Getenv("PROD_MATRIX_PASSWORD")
|
||||||
|
cfg.database = os.Getenv("PROD_SQLITE_DATABASE")
|
||||||
|
cfg.db_account_id = os.Getenv("PROD_DB_ACCOUNT_ID")
|
||||||
|
} else {
|
||||||
|
cfg.homeserver = os.Getenv("DEV_MATRIX_HOMESERVER")
|
||||||
|
cfg.username = os.Getenv("DEV_MATRIX_USERNAME")
|
||||||
|
cfg.password = os.Getenv("DEV_MATRIX_PASSWORD")
|
||||||
|
cfg.database = os.Getenv("DEV_SQLITE_DATABASE")
|
||||||
|
cfg.db_account_id = os.Getenv("DEV_DB_ACCOUNT_ID")
|
||||||
|
}
|
||||||
|
|
||||||
client, err := mautrix.NewClient(homeserver, "", "")
|
client, err := mautrix.NewClient(cfg.homeserver, "", "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
@ -115,7 +133,7 @@ func main() {
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
cryptoHelper, err := cryptohelper.NewCryptoHelper(app.MatrixClient, []byte("meow"), database)
|
cryptoHelper, err := cryptohelper.NewCryptoHelper(app.MatrixClient, []byte("meow"), cfg.database)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
@ -127,11 +145,11 @@ func main() {
|
||||||
// You don't need to set a device ID in LoginAs because the crypto helper will set it for you if necessary.
|
// You don't need to set a device ID in LoginAs because the crypto helper will set it for you if necessary.
|
||||||
cryptoHelper.LoginAs = &mautrix.ReqLogin{
|
cryptoHelper.LoginAs = &mautrix.ReqLogin{
|
||||||
Type: mautrix.AuthTypePassword,
|
Type: mautrix.AuthTypePassword,
|
||||||
Identifier: mautrix.UserIdentifier{Type: mautrix.IdentifierTypeUser, User: username},
|
Identifier: mautrix.UserIdentifier{Type: mautrix.IdentifierTypeUser, User: cfg.username},
|
||||||
Password: password,
|
Password: cfg.password,
|
||||||
}
|
}
|
||||||
// If you want to use multiple clients with the same DB, you should set a distinct database account ID for each one.
|
// If you want to use multiple clients with the same DB, you should set a distinct database account ID for each one.
|
||||||
//cryptoHelper.DBAccountID = ""
|
cryptoHelper.DBAccountID = cfg.db_account_id
|
||||||
err = cryptoHelper.Init()
|
err = cryptoHelper.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
|
|
Loading…
Reference in a new issue