# iceoryx2-cli CLI tooling for interacting with `iceoryx2` systems. ## Installation Install via `cargo`: ```console cargo install iceoryx2-cli ``` ## Usage The entrypoint to the CLI is `iox2`: ```console $ iox2 --help The command-line interface entrypoint to iceoryx2. Usage: iox2 [OPTIONS] [COMMAND] Options: -l, --list List all installed external commands -p, --paths Display paths that will be checked for external commands -h, --help Print help -V, --version Print version Commands: ... See external installed commands with --list ``` Sub-commands are separate binaries (prefixed with `iox2-`) which can be discovered by the entrypoint: ```console $ iox2 --list Discovered Commands: node service ``` Sub-commands can be run using their discovered name: ```console $ iox2 service --help Query information about iceoryx2 services Usage: iox2 service [OPTIONS] [COMMAND] Options: -f, --format [default: RON] [possible values: RON, JSON, YAML] -h, --help Print help -V, --version Print version Commands: list List all services details Show service details ``` ```console $ iox2 node --help Query information about iceoryx2 nodes Usage: iox2 node [OPTIONS] [COMMAND] Options: -f, --format [default: RON] [possible values: RON, JSON, YAML] -h, --help Print help -V, --version Print version Commands: list List all nodes details Show node details ``` ## Extending 1. The CLI can be augmented with your own custom tool by developing binaries with a name prefixed by `iox2-` and placing it on the `PATH` to be discovered by `iox2` 2. Depend on `iceoryx2-cli` for some helpers to help with implementation: 1. An `output` module defining the various output structures used by this crate 2. A `Filter` trait for filtering data retrieved from `iceoryx2` 3. A `Format` enum providing functionality for outputting in different formats