storage
This commit is contained in:
@@ -2,8 +2,10 @@ package config
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"log/slog"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
"strconv"
|
||||
"strings"
|
||||
@@ -24,7 +26,8 @@ type Config struct {
|
||||
GoogleTranslate GoogleTranslateConfig
|
||||
Image ImageConfig
|
||||
Cors CorsConfig
|
||||
MailiSearch MeiliSearchConfig
|
||||
MeiliSearch MeiliSearchConfig
|
||||
Storage StorageConfig
|
||||
}
|
||||
|
||||
type I18n struct {
|
||||
@@ -95,6 +98,10 @@ type EmailConfig struct {
|
||||
Enabled bool `env:"EMAIL_ENABLED,false"`
|
||||
}
|
||||
|
||||
type StorageConfig struct {
|
||||
RootFolder string `env:"STORAGE_ROOT"`
|
||||
}
|
||||
|
||||
type PdfPrinter struct {
|
||||
ServerUrl string `env:"PDF_SERVER_URL,http://localhost:8000"`
|
||||
}
|
||||
@@ -155,7 +162,7 @@ func load() *Config {
|
||||
|
||||
err = loadEnv(&cfg.OAuth.Google)
|
||||
if err != nil {
|
||||
slog.Error("not possible to load env variables for outh google : ", err.Error(), "")
|
||||
slog.Error("not possible to load env variables for oauth google : ", err.Error(), "")
|
||||
}
|
||||
|
||||
err = loadEnv(&cfg.App)
|
||||
@@ -170,12 +177,12 @@ func load() *Config {
|
||||
|
||||
err = loadEnv(&cfg.I18n)
|
||||
if err != nil {
|
||||
slog.Error("not possible to load env variables for email : ", err.Error(), "")
|
||||
slog.Error("not possible to load env variables for i18n : ", err.Error(), "")
|
||||
}
|
||||
|
||||
err = loadEnv(&cfg.Pdf)
|
||||
if err != nil {
|
||||
slog.Error("not possible to load env variables for email : ", err.Error(), "")
|
||||
slog.Error("not possible to load env variables for pdf : ", err.Error(), "")
|
||||
}
|
||||
|
||||
err = loadEnv(&cfg.GoogleTranslate)
|
||||
@@ -185,19 +192,25 @@ func load() *Config {
|
||||
|
||||
err = loadEnv(&cfg.Image)
|
||||
if err != nil {
|
||||
slog.Error("not possible to load env variables for google translate : ", err.Error(), "")
|
||||
slog.Error("not possible to load env variables for image : ", err.Error(), "")
|
||||
}
|
||||
|
||||
err = loadEnv(&cfg.Cors)
|
||||
if err != nil {
|
||||
slog.Error("not possible to load env variables for google translate : ", err.Error(), "")
|
||||
slog.Error("not possible to load env variables for cors : ", err.Error(), "")
|
||||
}
|
||||
|
||||
err = loadEnv(&cfg.MailiSearch)
|
||||
err = loadEnv(&cfg.MeiliSearch)
|
||||
if err != nil {
|
||||
slog.Error("not possible to load env variables for google translate : ", err.Error(), "")
|
||||
slog.Error("not possible to load env variables for meili search : ", err.Error(), "")
|
||||
}
|
||||
|
||||
err = loadEnv(&cfg.Storage)
|
||||
if err != nil {
|
||||
slog.Error("not possible to load env variables for storage : ", err.Error(), "")
|
||||
}
|
||||
cfg.Storage.RootFolder = ResolveRelativePath(cfg.Storage.RootFolder)
|
||||
|
||||
return cfg
|
||||
}
|
||||
|
||||
@@ -308,6 +321,22 @@ func setValue(field reflect.Value, val string, key string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func ResolveRelativePath(relativePath string) string {
|
||||
// get working directory (where program was started)
|
||||
wd, err := os.Getwd()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
// convert to absolute path
|
||||
absPath := relativePath
|
||||
if !filepath.IsAbs(absPath) {
|
||||
absPath = filepath.Join(wd, absPath)
|
||||
}
|
||||
|
||||
return filepath.Clean(absPath)
|
||||
}
|
||||
|
||||
func parseEnvTag(tag string) (key string, def *string) {
|
||||
if tag == "" {
|
||||
return "", nil
|
||||
|
||||
Reference in New Issue
Block a user