From abc83ee7180e2ea4c5d65689dca48bfe88023862 Mon Sep 17 00:00:00 2001 From: Linnea Gräf Date: Sun, 12 Oct 2025 17:30:51 +0200 Subject: feat: application registration --- src/main/java/moe/nea/prickly/config/Config.java | 28 ++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/main/java/moe/nea/prickly/config/Config.java') 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 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; + } + } } -- cgit