WASD Scripts for VMS Apache
 January 2001
WASD VMS Hypertext Services, Copyright © 1996-2001 Mark G. Daniel.
This package (all associated programs), comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under the conditions
of the GNU GENERAL PUBLIC LICENSE, version 2.

Calendar Simple script to produce calendars.
CGILIB Collection of C language functions to ease script authoring across the WASD, OSU, Apache, Purveyor, and vanilla CGI environments (used by these scripts for portability).
Conan Access VMS Help and text libraries.
HyperReader
HyperShelf
Bookreader emulator (BNU and Bookreader format).
Hypershelf is used to navigate BNU or Bookreader shelves.
HyperSPI System performance monitor (of sorts!)
Query
Extract
Plain and HTML text file search utility.
Processes hits from the query script.
QDLogStats Quick & Dirty access LOG STATisticS


Installation


Unbundled from the WASD VMS Hypertext Services package for use by VMS Apache (ported using CSWS V1.0-1/Apache 1.3.12).  Requires logical APACHE$CGI_MODE to be set to 0 (default) or 1.  Logical APACHE$PREFIX_DCL_CGI_SYMBOLS_WWW can be optionally defined or not.

Installation steps:

  1. compile+link executables ... $ @BUILD   or (after UNZIPing optional object modules)
    link-only executables ... $ @BUILD LINK
  2. copy executables and support procedures ... $ @INSTALL APACHE
  3. add general and per-script mapping rules as described below
  4. HyperSPI has additional requirements (see HYPERSPIREADME.TXT in this same directory)

Runtime files (documentation, images, etc.) are located in the [.RUNTIME] subdirectory.  The following general mapping rule should be added [.CONF]HTTPD.CONF to allow the scripts to access required graphics, help, etc. (assumes the package has been UNZIPed into APACHE$COMMON:[SRC]).

  Alias /wasd/ "/apache_root/src/wasd/"

Other mapping rules may be needed depending on the script and what is required to be accessed by it.

  Alias /sys$common/syshlp/ "/sys$common/syshlp/"
  Alias /sys$common/syslib/ "/sys$common/syslib/"

All scripts generally provide additional usage information in the script source-code description.  Scripts requiring authorization (e.g. QDLOGSTATS) can configured using [CONF]HTTPD.CONF entries similar to the following (via the SYSUAF in this example).

  LoadModule auth_openvms_module
  /apache$common/modules/mod_auth_openvms.exe_alpha

  <Location /cgi-bin/script-name>
  AuthType Basic
  AuthName "OpenVMS authentication"
  AuthUserOpenVMS On
  require valid-user
  </Location>


Script Overviews


Calendar Simple script to produce calendars.

Access this year's calendar with

  /cgi-bin/calendar?0

and next year's with

  /cgi-bin/calendar?+1
Conan Access VMS help with:
  /cgi-bin/conan

Other demonstrations are available:

  runtime/conanhelp.html
HyperReader
HyperShelf
Mapping entries will be required for ALL paths to books, shelves, etc. The following two rules are useful for BNU-style ODL CDs (V7.n, thanks to Jeff Goodwin of Fairchild Semiconductor):
  AliasMatch ^/disk\$axpdoc(.+) /disk$axpdoc$1
  AliasMatch ^/disk\$vaxdoc(.+) /disk$vaxdoc$1

To access the default DECW$BOOKSHELF library:

  /cgi-bin/hypershelf

To access a BNU library specify it's location:

  /cgi-bin/hypershelf/sys$common/decw$book/library.decw$bookshelf
  /cgi-bin/hypershelf/sys$common/decw$defaults/user/library.odl

To directly access a book:

  /cgi-bin/hypershelf/sys$common/decw$book/bookreader.decw$book
HyperSPI See the HYPERSPIREADME.TXT in this same directory.

The [.RUNTIME]HYPERSPIEXAMPLE.GIF image gives some idea of what the script-processed data looks like via a browser (before you go to all the trouble of setting it up ;^)

Query
Extract
Both plain-text and HTML-text files can be searched, the latter only has the content of the file searched, not any tag-related text! "Text" files are recognised by the file extension.  A useful collection of these are predefined by the scripts.  To change the contents of this list use the /TEXT= and /HTML= qualifiers as described in the script prologues.  Additional plain-text files also must be specified to the EXTRACT script.

Examples, the first for generating a simple form-based search interface, the second for initiating a simple search:

  /cgi-bin/query/wasd/runtime/*.*
  /cgi-bin/query/wasd/runtime/*.*?wasd

It also supports form-initiated searches.  See the QUERY.C prologue.  Depending on server support it may be possible to make this script the default query (ISINDEX-style) engine.

QDLogStats Quick & Dirty LOG STATisticS provides very elementary statistics from Web server common/combined format log files.  A number of filters allow subsets of the log contents to be selected.  These filters are simple sort-of regular expressions.  This utility has a command-line and a CGI interface.
  /cgi-bin/qdlogstats

The CGI interface requires authorization to be active before it can be used.  Further setup and usage information is provided in the code description.

  qdlogstats.c



Mark G. Daniel
Mark.Daniel@vsm.com.au
Mark.Daniel@dsto.defence.gov.au

Demonstration & Download
http://wasd.vsm.com.au/
http://wasd.vsm.com.au/wasd/
ftp://ftp.vsm.com.au/wasd/index.html