Skip to content

feat: Implement config manager with layered resolution and startup banner - #11

Merged
XenoSnowFox merged 11 commits into
mainfrom
feature/app-configuration
Aug 21, 2026
Merged

feat: Implement config manager with layered resolution and startup banner#11
XenoSnowFox merged 11 commits into
mainfrom
feature/app-configuration

Conversation

@XenoSnowFox

Copy link
Copy Markdown
Contributor

No description provided.

Configuration values now track system defaults, file overrides, and CLI overrides separately. The effective value is resolved with the correct precedence (CLI > file > default), and both reads and resolved-config dumps use that layered value instead of the raw stored entry.
The app now opens ./config.toml and feeds it into ConfigManager before parsing command-line arguments. ConfigManager's TOML loader was updated to accept an input stream instead of a string, allowing file-based configuration loading without copying the entire file into memory.
Remove an unnecessary comment in ConfigManager.cpp that described applying lowest-priority configuration layers. This change has no functional impact — it simply cleans up the source by deleting an outdated/comment-only line.
Adds a brief startup banner in apps/main.cpp before configuration loading, including application metadata, licensing details, and a warranty notice to identify the server and its open-source terms.
This commit updates the startup banner in the main application entry point to reflect the project's XMPP server branding. It changes the displayed title from "XTRPG C++ Server" to "XTRPG: A XMPP Server" while keeping the rest of the version and licensing metadata unchanged.
Add a blank line after the software banner and improve generated CLI help output by including an explicit Options section and a --help/-h entry. This makes the command-line interface easier to read and more user-friendly.
Replace occurrences of '\n' with std::endl in src/config/ConfigManager.cpp::dumpResolvedConfig so section headers, option descriptions, key/value lines, and blank lines are written with std::endl (ensures consistent line termination and flush behavior).
@XenoSnowFox
XenoSnowFox merged commit e586a53 into main Aug 21, 2026
4 checks passed
@XenoSnowFox
XenoSnowFox deleted the feature/app-configuration branch August 21, 2026 06:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant