Skip to main content

Crate taba_cli

Crate taba_cli 

Source
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) and raw, and the shape of the API errors (doc 19b, section 18.11.3).
profile
The connection profiles and the config.yml file (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; term is the thin part that puts the terminal in raw mode.
yaml
The subset of YAML that taba-cli reads 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 {}).