@@ 0,0 1,41 @@
+/*
+ * Copyright (C) 2023 Jonni Liljamo <jonni@liljamo.com>
+ *
+ * This file is licensed under GPL-3.0-or-later, see NOTICE and LICENSE for
+ * more information.
+ */
+package util
+
+import (
+ "log"
+ "os"
+ "strconv"
+)
+
+func LoadEnvStr(key string, def string) string {
+ value, found := os.LookupEnv(key)
+ if found {
+ return value
+ }
+
+ if def == "" {
+ log.Fatalf("[erya] Environment variable %s is empty, and has no default", key)
+ } else {
+ log.Printf("[erya] Environment variable %s is empty, using default '%s'", key, def)
+ }
+ return def
+}
+
+func LoadEnvBool(key string, def bool) bool {
+ value, found := os.LookupEnv(key)
+ if found {
+ res, err := strconv.ParseBool(value)
+ if err != nil {
+ log.Fatalf("[erya] Environment variable %s failed to parse to bool from '%s'", key, value)
+ }
+ return res
+ }
+
+ log.Printf("[erya] Environment variable %s is empty, using default '%t'", key, def)
+ return def
+}