feat: add config module
This commit is contained in:
5
go.mod
5
go.mod
@@ -2,6 +2,9 @@ module git.ksdemosapps.com/kylesoda/go-migrate
|
|||||||
|
|
||||||
go 1.25.7
|
go 1.25.7
|
||||||
|
|
||||||
require github.com/sirupsen/logrus v1.9.4
|
require (
|
||||||
|
github.com/joho/godotenv v1.5.1
|
||||||
|
github.com/sirupsen/logrus v1.9.4
|
||||||
|
)
|
||||||
|
|
||||||
require golang.org/x/sys v0.13.0 // indirect
|
require golang.org/x/sys v0.13.0 // indirect
|
||||||
|
|||||||
2
go.sum
2
go.sum
@@ -1,5 +1,7 @@
|
|||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
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/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
|
||||||
|
github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
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/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w=
|
github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w=
|
||||||
|
|||||||
49
internal/app/config/main.go
Normal file
49
internal/app/config/main.go
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
package config
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"github.com/joho/godotenv"
|
||||||
|
log "github.com/sirupsen/logrus"
|
||||||
|
)
|
||||||
|
|
||||||
|
type dbConfig struct {
|
||||||
|
Url string
|
||||||
|
}
|
||||||
|
|
||||||
|
type appConfig struct {
|
||||||
|
FromDb dbConfig
|
||||||
|
ToDb dbConfig
|
||||||
|
}
|
||||||
|
|
||||||
|
func loadEnv() {
|
||||||
|
err := godotenv.Load()
|
||||||
|
if err != nil {
|
||||||
|
log.Warn("Warning: could not load .env file")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func getAppConfig() appConfig {
|
||||||
|
loadEnv()
|
||||||
|
|
||||||
|
fromDbUrl := os.Getenv("PG_FROM_DB_URL")
|
||||||
|
if fromDbUrl == "" {
|
||||||
|
log.Fatal("PG_FROM_DB_URL environment variable not set")
|
||||||
|
}
|
||||||
|
|
||||||
|
toDbUrl := os.Getenv("PG_TO_DB_URL")
|
||||||
|
if toDbUrl == "" {
|
||||||
|
log.Fatal("PG_TO_DB_URL environment variable not set")
|
||||||
|
}
|
||||||
|
|
||||||
|
return appConfig{
|
||||||
|
FromDb: dbConfig{
|
||||||
|
Url: fromDbUrl,
|
||||||
|
},
|
||||||
|
ToDb: dbConfig{
|
||||||
|
Url: toDbUrl,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var App appConfig = getAppConfig()
|
||||||
Reference in New Issue
Block a user