In my short career as software developer I’ve seen a lot of batch program that have a long list of arguments and options.
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:
- Check the documentation of the batch
- Connect via ssh on the internal server
- Copy the command form the documentation and adapt to the current situation. The command is something like this:
Shell1./generateReport -i myFile.txt -t3 f01012014 t0102015 -c112233 -w -p -ut
- Check the log (in a separate file)
- 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 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:
curl www.diegocastronuovo.com/cliffhanger/installCliffhanger.sh | sh
or download the last release from here:
This is for example the XML config for the program Grep:
<description>This program search a given pattern in a given input
<description>Each output line is preceded by its relative
line number in the
file, starting at line 1. The line number counter is
each file processed. This option is ignored if -c, -L,
-l, or -q
<description>Recursively search subdirectories listed.
<description>Never print filename headers (i.e. filenames)
Perform case insensitive matching. By default, grep
is case sen-
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!