Skip to content
Snippets Groups Projects
Verified Commit dbc8f64b authored by Ophestra's avatar Ophestra
Browse files

feat(conf): config defaults and cleaner lookup


Introduces configuration defaults, and lookup is grouped into a single init function.

Signed-off-by: default avatarOphestra Umiker <cat@ophivana.moe>
parent 11ea675b
Branches
Tags
1 merge request!1Clean up project code and optimise performance
conf.go 0 → 100644
package main
import "os"
const (
dbPath uint8 = iota
listenAddr
allowedOrigins
confLen
)
// env variable, default pairing
var confEnv = [confLen][2]string{
{"DB", "db"},
{"LISTEN_ADDR", "127.0.0.1:3000"},
{"ALLOWED_ORIGINS", "https://hizla.io"},
}
// resolved config values
var conf [confLen]string
func init() {
for i := 0; i < int(confLen); i++ {
if v, ok := os.LookupEnv(confEnv[i][0]); !ok {
conf[i] = confEnv[i][1]
} else {
conf[i] = v
}
}
}
package main package main
import ( import (
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/cors"
"github.com/gofiber/fiber/v2/middleware/limiter"
"log" "log"
"os"
"regexp" "regexp"
"time" "time"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/cors"
"github.com/gofiber/fiber/v2/middleware/limiter"
) )
var emailRegex = regexp.MustCompile(`^[a-z0-9._%+\-]+@[a-z0-9.\-]+\.[a-z]{2,4}$`) var emailRegex = regexp.MustCompile(`^[a-z0-9._%+\-]+@[a-z0-9.\-]+\.[a-z]{2,4}$`)
func main() { func main() {
app := fiber.New() app := fiber.New()
app.Use(cors.New(cors.Config{ app.Use(cors.New(cors.Config{
AllowOrigins: os.Getenv("ALLOWED_ORIGINS"), AllowOrigins: conf[allowedOrigins],
AllowHeaders: "Origin, Content-Type, Accept", AllowHeaders: "Origin, Content-Type, Accept",
})) }))
if err := InitDB("waitlistdb"); err != nil { if err := InitDB(conf[dbPath]); err != nil {
log.Fatalf("Failed to initialize LevelDB: %v", err) log.Fatalf("Failed to initialize LevelDB: %v", err)
} }
...@@ -89,16 +88,10 @@ func main() { ...@@ -89,16 +88,10 @@ func main() {
}) })
}) })
// Graceful shutdown // Graceful shutdown
app.Use(func(c *fiber.Ctx) error { app.Use(func(c *fiber.Ctx) error {
return c.Next() return c.Next()
}) })
port := os.Getenv("PORT") log.Fatal(app.Listen(conf[listenAddr]))
if port == "" {
port = "3000"
}
log.Fatal(app.Listen(":" + port))
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment