GShell is a framework for building rich command-line applications. The core of GShell provides the basic features needed by most commands, such as command-line argument/option processing, input/output redirection, preferences handling, ANSI support and a whole lot more.
Size matters when considering a library or framework to be used for the building blocks of an application and for this reason, the core of GShell strives to stay as small as possible, current weighing in at around 1.5 megabytes. Of course if you want some of the more fancy bits, like BSF scripting or remote shell support then things get a wee bit fatter obviously. But the beauty of GShell is you can just include the commands you want and omit those you don't, no trouble no fuss, and the framework dependencies can be kept as slim as desired.
GShell can be used to implement applications similar to
svn or can be used as the bootstrap launcher for much more complex applications, like Apache Geronimo.
Features at a Glance
- Dynamic command/plugin discovery
- Rich JLine console for line editing, history, input masking and tab-completion
- Simple annotation-based CLI option/argument processing
- Support for fancy ANSI color muck
- Rich dependency injection and component management via Plexus
- A simple command-line syntax parser with minimal support for quoting (
'') and for basic
- Branding support to allow application developers to customize the user experience
The first official release of GShell is finally here! For details and download instructions please see the release notes.
Everybody loves screen shots Here are a few of the basic GShell assembly in action...