diff options
| author | Bobby <[email protected]> | 2025-06-15 00:05:43 +0530 |
|---|---|---|
| committer | Bobby <[email protected]> | 2025-06-15 00:05:43 +0530 |
| commit | 9f6aac08a8e9a0685a21fbe4ee292cb514485f22 (patch) | |
| tree | 165b210ffd080c47d775596322868996d51413dc /config/config.go | |
| parent | e79dcba2565c10f9a967a97e863fedb727a3a041 (diff) | |
| download | imageboard-9f6aac08a8e9a0685a21fbe4ee292cb514485f22.tar.xz imageboard-9f6aac08a8e9a0685a21fbe4ee292cb514485f22.zip | |
setting up the imageboard
Diffstat (limited to 'config/config.go')
| -rw-r--r-- | config/config.go | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/config/config.go b/config/config.go new file mode 100644 index 0000000..14c0bf2 --- /dev/null +++ b/config/config.go @@ -0,0 +1,47 @@ +package config
+
+import (
+ "log"
+
+ "github.com/joho/godotenv"
+)
+
+var (
+ AppSecret string = "default_secret"
+ Database DatabaseConfig
+ IsDevelopmentMode bool = true
+ Image ImageConfig
+ S3 S3Config
+ Server ServerConfig
+ Session SessionConfig
+)
+
+func init() {
+ if err := godotenv.Load(); err != nil {
+ log.Println("no .env file found, using environment variables")
+ }
+
+ AppSecret = getEnv("APP_SECRET", AppSecret)
+
+ if err := Parse(&Database); err != nil {
+ log.Fatalf("failed to parse configuration: %v", err)
+ }
+
+ IsDevelopmentMode = getEnvBool("DEV_MODE", IsDevelopmentMode)
+
+ if err := Parse(&Image); err != nil {
+ log.Fatalf("failed to parse configuration: %v", err)
+ }
+
+ if err := Parse(&S3); err != nil {
+ log.Fatalf("failed to parse configuration: %v", err)
+ }
+
+ if err := Parse(&Server); err != nil {
+ log.Fatalf("failed to parse configuration: %v", err)
+ }
+
+ if err := Parse(&Session); err != nil {
+ log.Fatalf("failed to parse configuration: %v", err)
+ }
+}
|
