Expand description
taba-cli: the Taba client command line (doc 19b). The library exists for the
tests; the program is main.rs.
Re-exports§
pub use app::run;
Modules§
- app
- The core of the program: the context of a run, the errors and exit codes, and the dispatch
of the command. Everything that touches the system (environment, terminal, network, processes) goes through
Platform, so the tests can swap in a fake one. - args
- Own reading of the arguments (no command-line library), driven by the table of options of each command.
- commands
- The command table: what each one accepts, the help and the choice of command by the words of the arguments.
- output
- The output:
json(the server’s response, indented),table(columns) andraw, and the shape of the API errors (doc 19b, section 18.11.3). - profile
- The connection profiles and the
config.ymlfile (doc 19b, section 18.11.2). - settings
- The effective configuration of a call:
TABA_CLI_*variable, chosen profile and built-in value, field by field, remembering where each value came from (doc 19b, section 18.11.2). - system
- The real platform: environment, terminal, network and processes of the system.
- tui
- The interactive profiles screen (doc 19b, section 18.11.2): a list and a form navigated with
the arrows. The logic (
screen,form,keys) is pure and tested;termis the thin part that puts the terminal in raw mode. - yaml
- The subset of YAML that
taba-clireads and writes (doc 19b, section 18.11.2): maps nested by indentation and texts (plain, in single or double quotes), with#comments. No lists, anchors, multi-line blocks or flow maps (except an empty{}).