CLIck is a SW library that allows you to implement multi-context CLIs in an extremely easy way.
Some popular features supported by CLIck are:
multi-context environment
XML based structure definition
from simple and flat to complex multi-context CLIs
subcommands handling
history handling and commands recalling
context-aware auto-completion
automatic generation of application code
commands implementation though user callbacks
input/output stream redirection
special keys actions
VT100 keys compliant
VERY easy to use
CLIck has been written with the following criteria to allow its usage in a vast variety of environments:
code is fully re-entrant
tested on multi-process, multi-thread and generic multi-task environments (even on OSes with no memory protection between tasks)
very little usage of unistd library, to allow its usage on not fully POSIX OSes
code is meant to be as much optimized as possible. Very little usage of dynamic memory allocation
code is written in ANSI C, but ready to be used in C++ environments as well
[The basics]
[Defining the command tree: the XML tree file]
[Building CLIck]
[Creating your own application]
[Using the CLI]
This Wiki is "Work In Progress", I will soon upload a deeper description, as well as a quick tutorial. Please be patient.
Wiki: Building CLIck
Wiki: Creating your own application
Wiki: The basics
Wiki: Using the CLI