aboutsummaryrefslogtreecommitdiff
path: root/config/config.go
diff options
context:
space:
mode:
authorBobby <[email protected]>2025-06-15 00:05:43 +0530
committerBobby <[email protected]>2025-06-15 00:05:43 +0530
commit9f6aac08a8e9a0685a21fbe4ee292cb514485f22 (patch)
tree165b210ffd080c47d775596322868996d51413dc /config/config.go
parente79dcba2565c10f9a967a97e863fedb727a3a041 (diff)
downloadimageboard-9f6aac08a8e9a0685a21fbe4ee292cb514485f22.tar.xz
imageboard-9f6aac08a8e9a0685a21fbe4ee292cb514485f22.zip
setting up the imageboard
Diffstat (limited to 'config/config.go')
-rw-r--r--config/config.go47
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)
+ }
+}