2.0 KiB
Client configs: cbd.toml vs cbd-tui.toml
Problem
cbd (server + TUI in one process) and cbd-tui (standalone terminal
client) both originally loaded cbd-tui.toml. On a single machine the
common setup is:
cbd— self-contained, playing on this laptop against its own in-process server (localhost);cbd-tui— a remote control pointed at another server (e.g. a Raspberry Pi).
With one shared config file these two uses fight over a single
address: point it at the Pi for cbd-tui, and cbd's TUI half also
connects to the Pi while its local server runs unused.
Decision
Give each binary its own client config file, with the same option
set (address, user, password — the ServerConfig type is
shared):
cbdreadscbd.toml.cbd-tuireadscbd-tui.toml.
Both default address to http://127.0.0.1:50051. For cbd that
default is the right permanent value — it matches the in-process
server's listen address — so cbd needs no config at all. cbd-tui's
default is a starting point the user overrides to point at a remote
server. The files being separate is the whole point: editing one never
moves the other.
The server-side crabidy-server.toml (the [auth] roles) is unrelated
and unchanged; this split is purely about the client address/creds.
Alternatives considered
- One file, add a
cbd-only override section: still one file to reason about, and the override semantics (which wins?) are murkier than two files with identical shape. Rejected. - A CLI flag only for
cbd: does not persist; the user wants a laptop that "just works" on every start. Rejected (the flag still exists as an override, as forcbd-tui).
Migration
Existing users keep their cbd-tui.toml for cbd-tui. On first run
after the change, cbd writes a fresh cbd.toml with localhost
defaults; anyone who had customized cbd-tui.toml for cbd's sake
(unusual — the default already fit) copies the value across once.