trx-rs.toml.example was maintained by hand and had fallen well behind: no
[[rigs]], no [[remotes]], no [timeouts], no bandplan or decode-history
settings, and a [frontends.http].default_rig_id that had been renamed.
Generate it from the config structs instead, so a new field shows up the moment
it exists, and add a test that fails when the checked-in copy drifts:
cargo run -p trx-config --example generate_example
Section comments come from a small table; a section without an entry is still
emitted, so forgetting a comment can never drop a setting from the example.
The manual was wrong about the basics. It listed five config search paths, none
of which the loader has ever looked at (the real order is ./trx-rs.toml → XDG →
/etc), called --print-config output "fully commented" when it carries no
comments at all, and documented a TRX_PLUGIN_DIRS variable no code reads. It
also still described [frontends.rigctl].port as the bind port years after
rig_ports replaced it. Fixed, and the new configuration features are written
up alongside.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SyX26FCpMQxiBoC7r5K1A7
Signed-off-by: Stan Grams <sjg@haxx.space>
30 lines
829 B
Rust
30 lines
829 B
Rust
// SPDX-FileCopyrightText: 2026 Stan Grams <sjg@haxx.space>
|
|
//
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
//! Regenerate `trx-rs.toml.example` from the config structs.
|
|
//!
|
|
//! Run from anywhere in the workspace:
|
|
//!
|
|
//! ```text
|
|
//! cargo run -p trx-config --example generate_example
|
|
//! ```
|
|
//!
|
|
//! A test in `trx_config::example` fails when the checked-in file no longer
|
|
//! matches, which is the reminder to run this.
|
|
|
|
use std::path::PathBuf;
|
|
|
|
fn main() -> std::io::Result<()> {
|
|
let target: PathBuf = std::env::args()
|
|
.nth(1)
|
|
.map(PathBuf::from)
|
|
.unwrap_or_else(|| {
|
|
PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../../trx-rs.toml.example")
|
|
});
|
|
|
|
std::fs::write(&target, trx_config::example::combined_example())?;
|
|
println!("Wrote {}", target.display());
|
|
Ok(())
|
|
}
|