summaryrefslogtreecommitdiff
path: root/src/main/java/moe/nea/prickly/config/Config.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/moe/nea/prickly/config/Config.java')
-rw-r--r--src/main/java/moe/nea/prickly/config/Config.java28
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;
+ }
+ }
}