51 lines
801 B
Go
51 lines
801 B
Go
package bootstrap
|
|
|
|
import (
|
|
"os"
|
|
"slices"
|
|
"strconv"
|
|
)
|
|
|
|
var (
|
|
validSyncModes = []string{
|
|
"sync",
|
|
"strict",
|
|
"dry",
|
|
}
|
|
)
|
|
|
|
// part of environment checking
|
|
func safeStringGrab(key, fallback string) string {
|
|
if v, ok := os.LookupEnv(key); ok {
|
|
return v
|
|
}
|
|
return fallback
|
|
}
|
|
|
|
func safeIntGrab(key string, fallback int) int {
|
|
if v, ok := os.LookupEnv(key); ok {
|
|
if i, err := strconv.Atoi(v); err == nil {
|
|
return i
|
|
}
|
|
}
|
|
return fallback
|
|
}
|
|
|
|
func safeBoolGrab(key string, fallback bool) bool {
|
|
if v, ok := os.LookupEnv(key); ok {
|
|
if b, err := strconv.ParseBool(v); err == nil {
|
|
return b
|
|
}
|
|
}
|
|
return fallback
|
|
}
|
|
|
|
func safeSyncModeGrab(key, fallback string) string {
|
|
if v, ok := os.LookupEnv(key); ok {
|
|
if slices.Contains(validSyncModes, v) {
|
|
return v
|
|
}
|
|
}
|
|
return fallback
|
|
}
|