# config_cli A development tool for loading and inspecting INI configuration files against the node's schema. Useful for verifying that a config file parses correctly and seeing what values would be applied. --- ## Build From the repository root: ```sh make cli ``` The binary is placed in `build/cli/`. --- ## Usage ### Load a config file ```sh ./config_cli ``` Parses the file and prints all resolved values. Values absent from the file are filled with schema defaults. Example: ```sh ./config_cli /etc/video-node/node.cfg ``` Example output: ``` [node] name = camera:0 site_id = 0 tcp_port = 8000 function = source [discovery] interval_ms = 5000 timeout_intervals = 3 [transport] max_connections = 16 ``` ### Print schema defaults ```sh ./config_cli --defaults ``` Prints all keys with their default values and types, without reading any file. --- ## Config Schema | Section | Key | Type | Default | |---|---|---|---| | `node` | `name` | string | `unnamed:0` | | `node` | `site_id` | uint16 | `0` | | `node` | `tcp_port` | uint16 | `0` (auto) | | `node` | `function` | flags | `source` | | `discovery` | `interval_ms` | uint32 | `5000` | | `discovery` | `timeout_intervals` | uint32 | `3` | | `transport` | `max_connections` | uint32 | `16` | `function` accepts a comma-separated list of role flags: `source`, `relay`, `sink`, `controller`. --- ## Relationship to the Video Routing System `config_cli` exercises the `config` module used by the video node at startup. Both the node binary and `config_cli` share the same schema definition, so this tool is an accurate preview of how the node will interpret a config file.