use config package in cli

This commit is contained in:
Keiran 2025-08-07 18:35:00 +01:00
parent 9a1e6122fa
commit 3145c2c0aa
2 changed files with 17 additions and 17 deletions

View File

@ -8,6 +8,7 @@ import (
"log" "log"
"os" "os"
"git.keircn.com/keiran/termcloud/internal/config"
"git.keircn.com/keiran/termcloud/internal/db" "git.keircn.com/keiran/termcloud/internal/db"
) )
@ -29,13 +30,15 @@ func main() {
} }
ctx := context.Background() ctx := context.Background()
pool, err := db.NewPool(ctx) cfg := config.Load()
pool, err := db.NewPool(ctx, cfg)
if err != nil { if err != nil {
log.Fatalf("Failed to create database pool: %v", err) log.Fatalf("Failed to create database pool: %v", err)
} }
defer db.ClosePool(pool) defer db.ClosePool(pool)
bucketService := db.NewBucketService(pool) bucketService := db.NewBucketService(pool, cfg)
switch os.Args[1] { switch os.Args[1] {
case "create-user": case "create-user":
@ -46,7 +49,7 @@ func main() {
username := os.Args[2] username := os.Args[2]
email := os.Args[3] email := os.Args[3]
storageLimit := int64(1) * 1024 * 1024 * 1024 storageLimit := cfg.DefaultStorageLimit
if len(os.Args) >= 5 { if len(os.Args) >= 5 {
var limitGB int64 var limitGB int64

View File

@ -2,9 +2,10 @@ package main
import ( import (
"context" "context"
"fmt"
"log" "log"
"os"
"git.keircn.com/keiran/termcloud/internal/config"
"git.keircn.com/keiran/termcloud/internal/db" "git.keircn.com/keiran/termcloud/internal/db"
"git.keircn.com/keiran/termcloud/internal/handlers" "git.keircn.com/keiran/termcloud/internal/handlers"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
@ -14,30 +15,31 @@ import (
func main() { func main() {
ctx := context.Background() ctx := context.Background()
cfg := config.Load()
pool, err := db.NewPool(ctx) pool, err := db.NewPool(ctx, cfg)
if err != nil { if err != nil {
log.Fatalf("Failed to create database pool: %v", err) log.Fatalf("Failed to create database pool: %v", err)
} }
defer db.ClosePool(pool) defer db.ClosePool(pool)
bucketService := db.NewBucketService(pool) bucketService := db.NewBucketService(pool, cfg)
h := handlers.NewHandlers(bucketService) h := handlers.NewHandlers(bucketService)
e := echo.New() e := echo.New()
e.Use(middleware.BodyLimit("100M")) e.Use(middleware.BodyLimit(fmt.Sprintf("%dM", cfg.MaxFileSize/1024/1024)))
e.Use(middleware.CORSWithConfig(middleware.CORSConfig{ e.Use(middleware.CORSWithConfig(middleware.CORSConfig{
AllowOrigins: []string{"*"}, AllowOrigins: cfg.CORSOrigins,
AllowMethods: []string{echo.GET, echo.POST, echo.PUT, echo.DELETE}, AllowMethods: []string{echo.GET, echo.POST, echo.PUT, echo.DELETE},
AllowHeaders: []string{"*"}, AllowHeaders: []string{"*"},
})) }))
e.Use(middleware.GzipWithConfig(middleware.GzipConfig{ e.Use(middleware.GzipWithConfig(middleware.GzipConfig{
Level: 5, Level: cfg.GzipLevel,
})) }))
e.Use(middleware.RateLimiter(middleware.NewRateLimiterMemoryStore(rate.Limit(20)))) e.Use(middleware.RateLimiter(middleware.NewRateLimiterMemoryStore(rate.Limit(cfg.RateLimit))))
e.Static("/storage", "storage") e.Static("/storage", cfg.StorageDir)
e.GET("/", h.RootHandler) e.GET("/", h.RootHandler)
@ -53,10 +55,5 @@ func main() {
api.GET("/buckets/:bucket/objects/*", h.GetObjectHandler) api.GET("/buckets/:bucket/objects/*", h.GetObjectHandler)
api.DELETE("/buckets/:bucket/objects/*", h.DeleteObjectHandler) api.DELETE("/buckets/:bucket/objects/*", h.DeleteObjectHandler)
port := os.Getenv("PORT") e.Logger.Fatal(e.Start(":" + cfg.Port))
if port == "" {
port = "8080"
}
e.Logger.Fatal(e.Start(":" + port))
} }