mirror of
https://github.com/skidoodle/mediaproxy
synced 2025-10-14 09:45:09 +02:00
63 lines
1.2 KiB
Go
63 lines
1.2 KiB
Go
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
|
|
}
|