AutoGen is a tool designed for generating program files that contain repetitive text with varied substitutions. Its goal is to simplify the maintenance of programs that contain large amounts of repetitious text. This is especially valuable if there are several blocks of such text that must be kept synchronized. Output is specified with a Scheme-enhanced output template. Input, if required by your template, may come from AutoGen definitions, CGI data, or XML files.
NFSv4 specifies that the RPC calls be batched into a "compound" call. There is no support for this in RPCGEN. By rearranging the ONC IDL for NFSv4 into AutoGen definitions, these templates will emit the original IDL *plus* all the code to package, send, distribute, collect, return, and dispatch the results. The distributed program author merely needs to call and supply server procedures for the routines specified in the IDL. Templates for these calls and service routines is provided, too. The NFSv4 definitions are included.
AutoOpts is an integrated part of AutoGen. Based on a very simple option description file, it will process configuration files, environment variables, command line options, text strings passed by client programs, and will make the results easily accessible to the client program. It will also produce a man page and the info-doc invoking section automatically.
Request for enhancement: In the current era of spaces in file names and URL encoding of such names, "it would be nice" if this ftp client would accept various encodings for file names instead of making a user figure out the "correct" encoding via trial and error. I'd go to the trouble of submitting a patch, if I thought it'd be accepted.
The solution one arrives at depends upon the complexity of the initializations required and your philosophy. In MNSHO, the usage text should be constrained to hints about the options so that a user can get reminders. If one needs more help than that, they need to go elsewhere to avoid cluttering the screen for those that only need the hint.
Notwithstanding all of that, there still comes a time when there are too many options to fit easily on a page. To cope with all of this, I wrote a package AutoOpts (http://autogen.sf.net/autoopts.html ) that
* uses a short help form when invalid options are supplied
* provides a long help form when help is specifically requested
* provides for visual separation of options for programs with exceptionally long lists of options.
* the ``--more-help'' option will run the help through a pager automatically.
An extended example of its usage can be seen here:
AutoGen Usage (http://Autogen.sf.Net/doc/autogen_5.html#SEC149 )
Using this package eliminates the need to mess with usage text or parsing options or reading config files and alleviates much of the burden of maintaining a man page.