Add Configuration Validator #17

Open
opened 2026-02-02 15:13:50 -05:00 by jared · 0 comments
Owner

class ConfigValidator:
REQUIRED = ['DISCORD_TOKEN', 'GUILD_ID']
OPTIONAL = {
'MINECRAFT_RCON_PASSWORD': 'Minecraft commands',
'PELICAN_API_KEY': 'Pelican integration',
'OLLAMA_URL': '/ask command'
}

@classmethod
def validate(cls):
    """Validate configuration on startup"""
    errors = []
    warnings = []
    
    # Check required
    for var in cls.REQUIRED:
        if not os.getenv(var):
            errors.append(f"Missing required: {var}")
    
    # Check optional
    for var, feature in cls.OPTIONAL.items():
        if not os.getenv(var):
            warnings.append(f"Missing {var} - {feature} disabled")
    
    return errors, warnings

In main:

if name == "main":
errors, warnings = ConfigValidator.validate()

if errors:
    for error in errors:
        logger.error(error)
    exit(1)

for warning in warnings:
    logger.warning(warning)

client.run(os.getenv('DISCORD_TOKEN'))
class ConfigValidator: REQUIRED = ['DISCORD_TOKEN', 'GUILD_ID'] OPTIONAL = { 'MINECRAFT_RCON_PASSWORD': 'Minecraft commands', 'PELICAN_API_KEY': 'Pelican integration', 'OLLAMA_URL': '/ask command' } @classmethod def validate(cls): """Validate configuration on startup""" errors = [] warnings = [] # Check required for var in cls.REQUIRED: if not os.getenv(var): errors.append(f"Missing required: {var}") # Check optional for var, feature in cls.OPTIONAL.items(): if not os.getenv(var): warnings.append(f"Missing {var} - {feature} disabled") return errors, warnings # In main: if __name__ == "__main__": errors, warnings = ConfigValidator.validate() if errors: for error in errors: logger.error(error) exit(1) for warning in warnings: logger.warning(warning) client.run(os.getenv('DISCORD_TOKEN'))
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/discordBot#17