Apache Geronimo :: GShell
Section | ||||
---|---|---|---|---|
Column | ||||
|
...
|
...
Some History (and babble)
...
|
...
|
...
But what plumbing is there for command-line tools? Well, that becomes more apparent when you start to think about how commands
(plural) can coexist and cooperate together. At that point you have the commands option parsing and functionality... plus interaction with input/output streams and environment variables, i18n loading, preferences handling, profile loading, blah, blah, blah.
<rant>
But Jason, why not use use the system's shell for this stuff? Well, as many of you know... the Windows cmd.exe sucks ass, and despite the profits of vista hoping that ms-foolios are going to fix it, I can't assume they will, since they have had years to pull their heads out and see the folly of batch.
</rant>
But, more so... I want to be able to SSH into my application server and run those commands. I want to be able to launch a script (language of my choice) in the server from a remote terminal and have it just work as I would expect it to. IMO that is really where the benefit of the common plumbing is.
Yet even before we get there, the plumbing allows for use to build simple and consistent command-line tools. Adding a new tool is as simple as adding a new jar to a directory, no need for more scripts to maintain, or configuration files, yada yada.
Where Reality Comes In
So, what GShell really is, is a simple and light-weight framework to facilitate building command-line applications that have a rich user experience.
At the moment, GShell has several significant features:
...
|
...
|
Many things are missing though... Some things which are planned to implemented very soon are:
- Customizable command layout (allows you to make a virtual filesystem to organize your commands)
- Remote shell support via custom protocol (ssh stuff may eventually come, but this is coming first)
- Annotation-based preferences access
- Annotation-based i18n access
And other things which are planned, but so far lack resources to implement:
...
|
...
|