Documentation - Control
Author: Kevin Day
Description: Control program documentation.
Keywords: Kevin Day, Kevux, FLL, Featureless, Linux, Library, Control, Open-Source

# Control Documentation

The control program is a tool for sending commands to the controller program.

This tools is currently incomplete and is not guaranteed to work with the controller program. Further development will be made on this once the controller program is updated. The next development series is planned to focus on networking, which will include support for this.

## Standard Parameters

Short | Long | Description
--- | --- | ---
`-h` | `--help` | Print the help message.
`+C` | `++copyright` | Print the copyright.
`+d` | `++dark` | Output using colors that show up better on dark backgrounds.
`+l` | `++light` | Output using colors that show up better on light backgrounds.
`+n` | `++no_color` | Do not print using color.
`+Q` | `++quiet` | Decrease verbosity, silencing most output.
`+E` | `++error` | Decrease verbosity, using only error output.
`+N` | `++normal` | Set verbosity to normal.
`+V` | `++verbose` | Increase verbosity beyond normal output.
`+D` | `++debug` | Enable debugging, significantly increasing verbosity beyond normal output.
`+v` | `++version` | Print only the version number.

The `+Q/++quiet` parameter silences all output that is not the intent and purpose of the program.
For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code.
The `+Q/++quiet` will not suppress this output.
The new line printed at the end of the program, is however, not printed.
The `+Q/++quiet` is ideal for using in scripting to help guarantee more consistent and controlled output.

The `+N/++no_color` simplifies the output to avoid the special color character codes.
The special color character codes tend to take up a lot of extra space and may slow down printing performance.

## Program Parameters

Short | Long | Description
--- | --- | ---
`-n` | `--name` | Specify the name of the controller socket file.
`-R` | `--return` | Print a message about the response packet.
`-s` | `--settings` | Specify a directory path or a full path to the control settings file.
`-k` | `--socket` | Specify a directory path or a full path to the controller socket file.

When the `--socket` parameter represents a directory path then the file name is generated from either the `--name` parameter or from the control settings file.

A rule action allows for either the full rule path, such as '`boot/root`' as a single parameter or two parameters with the first representing the rule directory path 'boot' and the second representing the rule base name '`root`'.

The `--return` parameter is intended to be used for scripting and is of the form "`response [type] [action] [status]`".

Be sure to use the `++quiet` parameter to suppress output when using this in scripting.
No response is returned on program errors, especially those errors that prevent communicating to the controller.