WASD Scripts for OSU (DECthreads)
Alpha (AXP), Itanium (IA64) and VAX
 January 2004
WASD VMS Hypertext Services, Copyright © 1996-2004 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).
CGISYM This small utility can be used to create WASD-like CGI variables in DCL symbols from the OSU dialog phase.  Symbol values can be up to 255 characters under VMS 6 and 1023 characters for VMS 7 and following.  (CGISYM is not used to support any of the other WASD scripts, all of which use CGILIB directly.)
CGIutl A CLI utility to assist at the DCL level with generating HTTP responses, returning content and with the handling of POSTed requests. Intended to be used within DCL procedures to manipulate the CGI environment.
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 OSU (DECthreads) (port checked against 3.8).  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 OSU
  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 to [.SYSTEM]HTTP_PATHS.CONF.  Of course they may be relocated if desired provided the rule reflects the new location.

  pass /wasd/runtime/* /www_root/script_code/wasd/runtime/*

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

  pass /sys$common/syshlp/* /sys$common/syshlp/*
  pass /sys$common/syslib/* /sys$common/syslib/*

All scripts generally provide additional usage information in the script source-code description.

NOTE:   The HyperReader, HyperShelf and Conan scripts can all respond with a "HTTP/1.0 304 Not Modified" against requests with "If-Modified-Since:" header lines.  The SYS$TIMEZONE_DIFFERENTIAL logical is used to generate the GMT times used in the calculations.  If this logical is not correctly maintained (as in many VMS v6.n systems) an invalid time error may be reported by the script.  In the relevant script support procedure simply uncomment the indicated line to define the HTTPD$GMT logical which provides a work-around.


Script Overviews


Calendar Simple script to produce calendars.

Access this year's calendar with

  /htbin/calendar?0

and next year's with

  /htbin/calendar?+1
CGIutl No usage examples are provided with this kit.
Demonstrations of form decoding and file upload are available on the WASD demonstration site.
  http://wasd.vsm.com.au/ht_root/src/misc/
A comprehensive description of CGIutl functionality is available in the source code.
  cgiutl.c
Conan Access VMS help with:
  /htbin/conan

Other demonstrations are available:

  /wasd/runtime/conanhelp_osu.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):
  pass /disk$axpdoc* /disk$axpdoc*
  pass /disk$vaxdoc* /disk$vaxdoc*

To access the default DECW$BOOKSHELF library:

  /htbin/hypershelf

To access a BNU library specify it's location:

  /htbin/hypershelf/sys$common/decw$book/library.decw$bookshelf
  /htbin/hypershelf/sys$common/decw$defaults/user/library.odl

To directly access a book:

  /htbin/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:

  /htbin/query/wasd/runtime/*.*
  /htbin/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 can use the familiar asterisk wildcard or comprise simple or complex regular expressions.  This utility has a command-line and a CGI interface.
  /htbin/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