diff options
| author | Linnea Gräf <nea@nea.moe> | 2025-10-12 16:16:36 +0200 |
|---|---|---|
| committer | Linnea Gräf <nea@nea.moe> | 2025-10-12 16:16:36 +0200 |
| commit | 62bbe7c687f99bd0e51aafc43416768c00aaafa4 (patch) | |
| tree | 25b484a94cab1f9336946e93fb8eb332eeb32125 /src/main/java/moe/nea/prickly/config/ConfigCompat.java | |
| download | prickly-62bbe7c687f99bd0e51aafc43416768c00aaafa4.tar.gz prickly-62bbe7c687f99bd0e51aafc43416768c00aaafa4.tar.bz2 prickly-62bbe7c687f99bd0e51aafc43416768c00aaafa4.zip | |
init: create basic server + config
Diffstat (limited to 'src/main/java/moe/nea/prickly/config/ConfigCompat.java')
| -rw-r--r-- | src/main/java/moe/nea/prickly/config/ConfigCompat.java | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/main/java/moe/nea/prickly/config/ConfigCompat.java b/src/main/java/moe/nea/prickly/config/ConfigCompat.java new file mode 100644 index 0000000..38291c5 --- /dev/null +++ b/src/main/java/moe/nea/prickly/config/ConfigCompat.java @@ -0,0 +1,41 @@ +package moe.nea.prickly.config; + +import lombok.extern.slf4j.Slf4j; +import org.jspecify.annotations.Nullable; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Map; +import java.util.Properties; + +@Slf4j +public class ConfigCompat { + public static final Path ENV_FILE = Path.of(".env").toAbsolutePath(); + + @SuppressWarnings({"unchecked", "rawtypes"}) + private static Map<String, String> loadDotenv() { + var properties = new Properties(); + if (!Files.exists(ENV_FILE)) { + log.info("no .env file found at {}", ENV_FILE); + } else { + try (var reader = Files.newBufferedReader(ENV_FILE, StandardCharsets.UTF_8)) { + properties.load(reader); + log.info("loaded environment from {} ({} entries)", ENV_FILE, properties.size()); + } catch (IOException e) { + log.error("could not read .env file at {}", ENV_FILE, e); + } + } + return (Map) properties; + } + + public static Map<String, String> DOTENV_FALLBACK = loadDotenv(); + + public static @Nullable String getEnv(String key) { + var value = System.getenv(key); + if (value != null) + return value; + return DOTENV_FALLBACK.get(key); + } +} |
