In Issue #983 some people expressed a desire to be able to reuse commands outside of the CLI, for example in APIs and UIs. PR #1083 helped with this by removing System.exit from the commands themselves and restructuring the module so you don't have to call the main method on a command to execute it.
The following three issues still make it difficult for the commands to be reusable:
- Many of the commands directly print to
System.out or log to a Logger.
- Many of the commands rely on side effects instead of returning a meaningful response (ex:
FluoList, FluoStatus).
- There's no way to set the options of a command.