The controller program is a tool for controller other programs.

This tool is designed to configured to perform and execute any tasks given across multiple languages and it also has support for operating as an init program. There are special compile-time configurations needed to make this properly operate as an init program.

This tool operates similar to the fake program and can even be seen as an evolution to the fake program. The controller program, however is not a replacement to the fake program as it is more generalized.

This tool also provides additional features for making it easierr to test and write controller instructions. These features include partial simulation and validation modes.

In partial simulation mode, anything that the controller program has full control over and can simulate is simulated. Actual programs and scripts themselves, therefore, cannot be simulated. However, it may be possible to use an environment variables or similar and pass settings to the called program or script if the called program or script is simulation and testing aware.

The validation mode is for making this tool more scriptable. By providing validation, the controller instructions can be validated, in which case a success or failure result is returned and any problems or warnings may be printed to the caller of this tool.

This tool is not currently fully functional as an init program replacement because the networking aspects are not yet written or fully hashed out. The contol program is also another key part to the contoller program in getting this to work as an init program. Ideally, once this support is complete, it should be possible to replace init programs, such as SystemD, 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.