Demonstrates how flash-flags integrates with JSON configuration files for flexible application setup.
- JSON configuration support: Load flags from config files
- Configuration hierarchy: Command line overrides config files
- Automatic config discovery: Searches for config files in standard locations
- Config file creation: Dynamic generation of sample configurations
- Mixed sources: Combining CLI arguments with config files
# Run with automatic config file detection go run main.go # Specify a custom config file go run main.go --config myapp.json # Override config values with CLI arguments go run main.go --config myapp.json --host 0.0.0.0 --port 9000 # Show help go run main.go --helpThe example uses JSON configuration files:
{ "host": "config.example.com", "port": 9090, "ssl": true, "workers": 4, "log-level": "debug", "timeout": 30.5, "features": ["auth", "metrics", "cache"] }The application searches for config files in:
- Current directory:
./config.json,./app.json - User config:
~/.config/myapp/config.json - System config:
/etc/myapp/config.json
- Command line arguments (highest priority)
- Configuration files
- Default values (lowest priority)
- Graceful handling of missing config files
- JSON parsing error reporting
- Validation after config loading
go build -o config ./configThe example will create a sample demo-config.json file to demonstrate the functionality.
flash-flags • an AGILira library