# ConfigForge
ConfigForge is a Rust CLI tool for converting, inspecting, and validating configuration files.
The first implementation milestone supports conversion between:
- JSON
- TOML
- YAML
## Install
```bash
cargo install config-forge
```
## Usage
```bash
config-forge --help
config-forge inspect Cargo.toml
config-forge convert app.toml -o app.yaml
config-forge convert app.yaml --to json
config-forge convert app.toml --to yaml --check
```
Planned commands:
```bash
config-forge validate config.yaml
config-forge merge base.yaml override.yaml -o merged.yaml
config-forge diff old.toml new.toml
```
When writing converted content to stdout, pass `--to` so the output format is explicit:
```bash
config-forge convert app.toml --to json
```
ConfigForge does not overwrite existing output files by default. Pass `--overwrite` when replacing a file is intentional:
```bash
config-forge convert app.toml -o app.yaml --overwrite
```
## Publishing
Before publishing:
```bash
cargo publish -p config-forge --dry-run
```
Publishing from GitHub Actions requires the `CARGO_REGISTRY_TOKEN` repository secret.
Tag format for CI publishing:
```bash
git tag config-forge-v0.1.0
git push github config-forge-v0.1.0
```