Modularian - Browse OpenVMS/VAX and OpenVMS/AXP libraries.
Modularian allows web browsers to look at and download the contents of all types of OpenVMS libraries or the libraries themselves. Modularian runs equally well under all WASD CGI environments (cgi, CGIplus, and PerlRTE) as well as under the OSU DECnet CGI environment (with a few caveats, see the installation instructions, below) without modification of Modularian.
The interface that Modularian presents is a ``directory'' of the contents of the library. Modules may be viewed (object modules are displayed as if ANALYZE/OBJECT had been run on the specified module) by pressing the view icon (or text) to the left of the module name. Modules may be downloaded by pressing the name of the module.
In order to preserve OpenVMS file attributes, the ZIP utility is used and the modules placed in ZIP archives, preserving the file attributes, before downloading. Of course, the receiver must have UNZIP on their system in order to extract the requested module.
The following items are required on the server providing access to Modularian:
http://www.csworks.com/download/modularian.plZIP
ftp://ftp.info-zip.org/pub/infozip/VMS
Note that zip is only required if the user wishes to actually use the downloading capabilities of Modularian.
Either the WASD web server, version 8.1 or higherhttp://wasd.vsm.com.au/wasd/
or the OSU DecThreads web server, version 3.4 or higher
http://kcgl1.eng.ohio-state.edu/www/doc/serverinfo.htmlPerl 5.6.1 or higher
http://www.perl.org/CGIplus.pm from the WASD web server distribution. This is used to download files and is used primarily for convenience. Should this requirement prove to be onerous, Modularian will be modified in a later release to eliminate it. The copy of CGIplus.pm in production at www.csworks.com is available at:
http://www.csworks.com/download/CGIplus.pm
The latest and greatest is always available as part of the current WASD distribution and if problems develop should be downloaded from there (see above).
The HTML::Entities and HTML::Table Perl modules from CPANhttp://www.cpan.org/
and any modules upon which they, in turn, depend. HTML::Entities is part of the HTML::Parser package. The version of these modules in production at www.csworks.com are available at:
http://www.csworks.com/download/html-parser-3_13.zip http://www.csworks.com/download/html-table-1_17.zip
Should problems develop, you should download and install the latest versions of these modules from CPAN before contacting the author for support.
(Optional) The VMS::Librarian version 1.06 or higher. This is currently only avilable from:http://www.csworks.com/download/librarian.html
Hopefully it will be included in a later release of Perl.
Since CGI.pm is used by Modularian, the ``standard'' behavior of WASD and OSU for defining CGI environment variables (prefixing them with ``WWW_'') must be disabled. An example of this is shown below in the discussion of the installation of Modularian.At the receiver's end, UNZIP is needed to extract modules from their ZIP file wrappers.
[AddType] .MLB application/x-script /modularian VMS MACRO library .OLB application/x-script /modularian VMS object library
Then in the mapping configuration at www.csworks.com:
set /cgi-bin/modularian.pl/* cgiprefix= set /cgiplus-bin/modularian.pl/* cgiprefix= script+ /modularian* /cgi-bin/modularian.pl*
The set is necessary to keep WASD from prefixing the CGI environment variables with ``WWW_'' by default.
At www.csworks.com access to Modularian is provided both through the standard CGI paths and the CGIplus paths. The CGI path is used for testing and the CGIplus path for production work.
Mark Daniels provided the following suggestion for providing access:
Mapping rules can provide some 'browsing' capability. For instance you can provide a URL such as
http://the.server.name/sys\$common/syslib/*.mlb
and using a mapping rule such as
if (pass:1) redirect /sys$common/syslib/*.mlb \ /cgiplus-bin/modularian.pl/sys$common/syslib/*.mlb
allows the selection of a file from the directory listing activating modularian and presto! There are a number of potential uses this sort of functionality can be applied to.
Note that whatever method is used to access Modularian, you must suppress the addtion of ``WWW_'' to the CGI environment variables through use of the set as discussed above.
The information here is much sketchier as OSU is not the primary web server in use at Cottage Software Works. If anybody has additional information and/or suggestions, feel free to forward them to the author for inclusion in later versions of Modularian.
$ perl_script: $ tfile = "sys$scratch:perlcgi_" + f$string(f$getjpi("0","PID")) + ".tmp" $! write_net "<DNETRECMODE>"
Note that if you are already using Perl CGIs at your site this will prevent them from working properly. The issue is discussed more or less fully in the source of Modularian, but the bottom line is that OSU DECnet based CGIs cannot successfully transmit binary data to clients in DNETRECMODE. In a production environment, you should probably use special extensions (such as ``.CGI-BIN'') or serve Modularian and other CGIs sending binary data out of a special directory and check for this information in WWWEXEC.COM and assert DNETRECMODE appropriately.
The Modularian CGI itself can be configured in small ways by editing the source code. There are several variables that affect the running and the display of Modularian.
Modularian was written by Dick Munroe (munroe@csworks.com) Any support questions or fixes should be sent to me at this address.
On another note, I'm looking for work (contract or permanent). My resume is available at:
http://www.csworks.com/resume
my CV (much more detailed, but too long for general distribution) is available at:
http://www.csworks.com/cv
I do a lot more than hack the web and Perl so take a look and if you think there's a match, drop me a note and let us see if we can't work something out.