Removed dist and added cache to monitor
This commit is contained in:
+29
-7
@@ -3,6 +3,7 @@ package config
|
||||
import (
|
||||
"log"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/joho/godotenv"
|
||||
)
|
||||
@@ -13,19 +14,37 @@ var (
|
||||
BaseURL string
|
||||
|
||||
AdminPassword string
|
||||
|
||||
MonitorScriptsDir string
|
||||
MonitorCacheTimeout time.Duration
|
||||
)
|
||||
|
||||
func loadEnv(key string, defaultValue ...string) string {
|
||||
env := os.Getenv(key)
|
||||
env, present := os.LookupEnv(key)
|
||||
|
||||
if len(defaultValue) > 0 && env == "" {
|
||||
if len(defaultValue) > 0 && !present {
|
||||
env = defaultValue[0]
|
||||
}
|
||||
|
||||
log.Printf("Environment variable %s = %q", key, env)
|
||||
log.Printf("Env variable %s = %q", key, env)
|
||||
return env
|
||||
}
|
||||
|
||||
func parseEnv[T any](key, defaultValue string, parseFunc func(string) (T, error)) T {
|
||||
env := loadEnv(key, defaultValue)
|
||||
|
||||
v, err := parseFunc(env)
|
||||
if err != nil {
|
||||
v, err = parseFunc(defaultValue)
|
||||
if err != nil {
|
||||
log.Fatalf("Unable to parse default value %q to type %T", defaultValue, v)
|
||||
}
|
||||
}
|
||||
|
||||
log.Printf(`Env variable %s parsed from %q to %T of value %v`, key, env, v, v)
|
||||
return v
|
||||
}
|
||||
|
||||
func init() {
|
||||
// Setup logger
|
||||
log.SetFlags(log.Lshortfile | log.Ltime | log.Ldate)
|
||||
@@ -33,9 +52,12 @@ func init() {
|
||||
// Load Config
|
||||
godotenv.Load()
|
||||
|
||||
Mode = loadEnv(os.Getenv("MODE"), "development")
|
||||
Host = loadEnv(os.Getenv("HOST"), ":4000")
|
||||
BaseURL = loadEnv(os.Getenv("HOST"), "http://localhost:4000")
|
||||
Mode = loadEnv("MODE", "development")
|
||||
Host = loadEnv("HOST", ":4000")
|
||||
BaseURL = loadEnv("HOST", "http://localhost:4000")
|
||||
|
||||
AdminPassword = loadEnv(os.Getenv("ADMIN_PASSWORD"), "secret")
|
||||
AdminPassword = loadEnv("ADMIN_PASSWORD", "secret")
|
||||
|
||||
MonitorScriptsDir = loadEnv("MONITOR_SCRIPTS_DIR", "./scripts")
|
||||
MonitorCacheTimeout = parseEnv("MONITOR_CACHE_TIMEOUT", "5s", time.ParseDuration)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user