Web interface generation for command line programs with CLIffhanger

In my short career as software developer I’ve seen a lot of batch program that have a long list of arguments and options.

The problem

In a banking context, you have a batch written in Java that can generate on demand reporting. 

This program is complex, is in production for 10 years and only have a Command Line Interface.

This batch is well documented but the user (typically a Technical Support Engineer) has to mix at least 10 different arguments, parameters and options that obviously have self explanatory name like “-ty” or “-pgNum” or “-äæ”.

To perform the task, the user has to:

  1. Check the documentation of the batch
  2. Connect via ssh on the internal server
  3. Copy the command form the documentation and adapt to the current situation. The command is something like this:
  4. Check the log (in a separate file)
  5. Repeat point 1,3 and 4 cause evidently the result is not as oped.

The simple way to solve the problem should be refactor the batch and / or add a simple web interface to it. The problem is that sometimes adding these changes could be very hard and expensive.

The solution

The problem described above is why I decided to create CLIffhanger, a “Command Line Scaffolder”.

The main purpose of CLIffhanger is to create a web interface for a command line program like a batch, for free.
You have simply to provide an XML configuration for the batch including executable path, arguments, options and log file path.

You run CLIffhanger with this configuration and in 3 second you have a web interface for your batch program. In the same web page, you can set all arguments and options, launch the batch and check the logs.

CLIffhanger use Java and Meteor. You most likely have Java installed, for Meteor there is a simply one command install procedure.

To try CLIffhanger, you can use the one command install similar to the Meteor one:

or download the last release from here:

https://github.com/castronu/CLIffhanger/release

This is for example the XML config for the program Grep:

Save it in the file grep.xml and launch:

or if you have used the one command installation:

Then go to localhost:3000 from your browser and enjoy!

cliffhanger
A screenshot from CLIffhanger