diff options
Diffstat (limited to 'src/main/java/moe/nea/prickly/config/Config.java')
| -rw-r--r-- | src/main/java/moe/nea/prickly/config/Config.java | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/main/java/moe/nea/prickly/config/Config.java b/src/main/java/moe/nea/prickly/config/Config.java index 4f886b1..624b1e3 100644 --- a/src/main/java/moe/nea/prickly/config/Config.java +++ b/src/main/java/moe/nea/prickly/config/Config.java @@ -1,9 +1,37 @@ /* (C) 2025 Linnea Gräf - Licensed to everyone under the BSD 3 Clause License */ package moe.nea.prickly.config; +import java.util.List; +import java.util.stream.Collectors; +import lombok.ToString; + public class Config { private static final ConfigPath ROOT = new ConfigPath("PRICKLY"); private static final ConfigPath NET = ROOT.join("NET"); + private static final ConfigPath AUTH = ROOT.join("AUTH"); public static final int PORT = NET.join("PORT").requireInt(); + public static final String COOKIE = AUTH.join("COOKIE").getString().orElse("AUTH_COOKIE"); + public static final String SECRET = AUTH.join("SECRET").requireString(); public static final String HOST = NET.join("HOST").getString().orElse("0"); + public static final List<Application> APPLICATIONS = + ROOT.join("APPLICATION").findChildren().map(Application::new).collect(Collectors.toList()); + + @ToString + public static class Application extends ConfigStruct { + Application(ConfigPath path) { + super(path); + } + + public final String SLUG = path.lastPart(); + public final String NAME = path.join("NAME").requireString(); + public final String HOMEPAGE = path.join("HOMEPAGE").requireString(); + } + + static class ConfigStruct { + protected final ConfigPath path; + + protected ConfigStruct(ConfigPath path) { + this.path = path; + } + } } |
