Removed dist and added cache to monitor

This commit is contained in:
2022-07-07 00:36:12 +02:00
parent 9fd04082f7
commit 095b08e300
9 changed files with 67 additions and 43 deletions
+29 -7
View File
@@ -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)
}