first commit

This commit is contained in:
2025-09-14 18:54:20 +02:00
commit 767ccb856b
12 changed files with 1380 additions and 0 deletions

62
env.go Normal file
View File

@@ -0,0 +1,62 @@
package main
import (
"log/slog"
"os"
"strconv"
"strings"
"time"
)
func getEnvLogLevel(key string, fallback slog.Level) slog.Level {
if value, ok := os.LookupEnv(key); ok {
switch strings.ToUpper(value) {
case "DEBUG":
return slog.LevelDebug
case "INFO":
return slog.LevelInfo
case "WARN", "WARNING":
return slog.LevelWarn
case "ERROR", "ERR":
return slog.LevelError
}
}
return fallback
}
func getEnvDuration(key string, fallback time.Duration) time.Duration {
if value, ok := os.LookupEnv(key); ok {
if duration, err := time.ParseDuration(value); err == nil {
return duration
}
}
return fallback
}
func getEnvStringSlice(key string, fallback []string) []string {
if value, ok := os.LookupEnv(key); ok {
if value == "" {
return []string{}
}
return strings.Split(value, ",")
}
return fallback
}
func getEnvInt(key string, fallback int) int {
if value, ok := os.LookupEnv(key); ok {
if i, err := strconv.Atoi(value); err == nil {
return i
}
}
return fallback
}
func getEnvInt64(key string, fallback int64) int64 {
if value, ok := os.LookupEnv(key); ok {
if i, err := strconv.ParseInt(value, 10, 64); err == nil {
return i
}
}
return fallback
}