[0001]
[0002]
[0003]
[0004]
[0005]
[0006]
[0007]
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
[0054]
[0055]
[0056]
[0057]
[0058]
[0059]
[0060]
[0061]
[0062]
[0063]
[0064]
[0065]
[0066]
[0067]
[0068]
[0069]
[0070]
[0071]
[0072]
[0073]
[0074]
[0075]
[0076]
[0077]
[0078]
[0079]
[0080]
[0081]
[0082]
[0083]
[0084]
[0085]
[0086]
[0087]
[0088]
[0089]
[0090]
[0091]
[0092]
[0093]
[0094]
[0095]
[0096]
[0097]
[0098]
[0099]
[0100]
[0101]
[0102]
[0103]
[0104]
[0105]
[0106]
[0107]
[0108]
[0109]
[0110]
[0111]
[0112]
[0113]
[0114]
[0115]
[0116]
[0117]
[0118]
[0119]
[0120]
[0121]
[0122]
[0123]
[0124]
[0125]
[0126]
[0127]
[0128]
[0129]
[0130]
[0131]
[0132]
[0133]
[0134]
[0135]
[0136]
[0137]
[0138]
[0139]
[0140]
[0141]
[0142]
[0143]
[0144]
[0145]
[0146]
[0147]
[0148]
[0149]
[0150]
[0151]
[0152]
[0153]
[0154]
[0155]
[0156]
[0157]
[0158]
[0159]
[0160]
[0161]
[0162]
[0163]
[0164]
[0165]
[0166]
[0167]
[0168]
[0169]
[0170]
[0171]
[0172]
[0173]
[0174]
[0175]
[0176]
[0177]
[0178]
[0179]
[0180]
[0181]
[0182]
[0183]
[0184]
[0185]
[0186]
[0187]
[0188]
[0189]
[0190]
[0191]
[0192]
[0193]
[0194]
[0195]
[0196]
[0197]
[0198]
[0199]
[0200]
[0201]
[0202]
[0203]
[0204]
[0205]
[0206]
[0207]
[0208]
[0209]
[0210]
[0211]
[0212]
[0213]
[0214]
[0215]
[0216]
[0217]
[0218]
[0219]
[0220]
[0221]
[0222]
[0223]
[0224]
[0225]
[0226]
[0227]
[0228]
[0229]
[0230]
[0231]
[0232]
[0233]
[0234]
[0235]
[0236]
[0237]
[0238]
[0239]
[0240]
[0241]
[0242]
[0243]
[0244]
[0245]
[0246]
[0247]
[0248]
[0249]
[0250]
[0251]
[0252]
[0253]
[0254]
[0255]
[0256]
[0257]
[0258]
[0259]
[0260]
[0261]
[0262]
[0263]
[0264]
[0265]
[0266]
[0267]
[0268]
[0269]
[0270]
[0271]
[0272]
[0273]
[0274]
[0275]
[0276]
[0277]
[0278]
[0279]
[0280]
[0281]
[0282]
[0283]
[0284]
[0285]
[0286]
[0287]
[0288]
[0289]
[0290]
[0291]
[0292]
[0293]
[0294]
[0295]
[0296]
[0297]
[0298]
[0299]
[0300]
[0301]
[0302]
[0303]
[0304]
[0305]
[0306]
[0307]
[0308]
[0309]
[0310]
[0311]
[0312]
[0313]
[0314]
[0315]
[0316]
[0317]
[0318]
[0319]
[0320]
[0321]
[0322]
[0323]
[0324]
[0325]
[0326]
[0327]
[0328]
[0329]
[0330]
[0331]
[0332]
[0333]
[0334]
[0335]
[0336]
[0337]
[0338]
[0339]
[0340]
[0341]
[0342]
[0343]
[0344]
[0345]
[0346]
[0347]
[0348]
[0349]
[0350]
[0351]
[0352]
[0353]
[0354]
[0355]
[0356]
[0357]
[0358]
[0359]
[0360]
[0361]
[0362]
[0363]
[0364]
[0365]
[0366]
[0367]
[0368]
[0369]
[0370]
[0371]
[0372]
[0373]
[0374]
[0375]
[0376]
[0377]
[0378]
[0379]
[0380]
[0381]
[0382]
[0383]
[0384]
[0385]
[0386]
[0387]
[0388]
[0389]
[0390]
[0391]
[0392]
[0393]
[0394]
[0395]
[0396]
[0397]
[0398]
[0399]
[0400]
[0401]
[0402]
[0403]
[0404]
[0405]
[0406]
[0407]
[0408]
[0409]
[0410]
[0411]
[0412]
[0413]
[0414]
[0415]
[0416]
[0417]
[0418]
[0419]
[0420]
[0421]
[0422]
[0423]
[0424]
[0425]
[0426]
[0427]
[0428]
[0429]
[0430]
[0431]
[0432]
[0433]
[0434]
[0435]
[0436]
[0437]
[0438]
[0439]
[0440]
[0441]
[0442]
[0443]
[0444]
[0445]
[0446]
[0447]
[0448]
[0449]
[0450]
[0451]
[0452]
[0453]
[0454]
[0455]
[0456]
[0457]
[0458]
[0459]
[0460]
[0461]
[0462]
[0463]
[0464]
[0465]
[0466]
[0467]
[0468]
[0469]
[0470]
[0471]
[0472]
[0473]
[0474]
[0475]
[0476]
[0477]
[0478]
[0479]
[0480]
[0481]
[0482]
[0483]
[0484]
[0485]
[0486]
[0487]
[0488]
[0489]
[0490]
[0491]
[0492]
[0493]
[0494]
[0495]
[0496]
[0497]
[0498]
[0499]
[0500]
[0501]
[0502]
[0503]
[0504]
[0505]
[0506]
[0507]
[0508]
[0509]
[0510]
[0511]
[0512]
[0513]
[0514]
[0515]
[0516]
[0517]
[0518]
[0519]
[0520]
[0521]
[0522]
[0523]
[0524]
[0525]
[0526]
[0527]
[0528]
[0529]
[0530]
[0531]
[0532]
[0533]
[0534]
[0535]
[0536]
[0537]
[0538]
[0539]
[0540]
[0541]
[0542]
[0543]
[0544]
[0545]
[0546]
[0547]
[0548]
[0549]
[0550]
[0551]
[0552]
[0553]
[0554]
[0555]
[0556]
[0557]
[0558]
[0559]
[0560]
[0561]
[0562]
[0563]
[0564]
[0565]
[0566]
[0567]
[0568]
[0569]
[0570]
[0571]
[0572]
[0573]
[0574]
[0575]
[0576]
[0577]
[0578]
[0579]
[0580]
[0581]
[0582]
[0583]
[0584]
[0585]
[0586]
[0587]
[0588]
[0589]
[0590]
[0591]
[0592]
[0593]
[0594]
[0595]
[0596]
[0597]
[0598]
[0599]
[0600]
[0601]
[0602]
[0603]
[0604]
[0605]
[0606]
[0607]
[0608]
[0609]
[0610]
[0611]
[0612]
[0613]
[0614]
[0615]
[0616]
[0617]
[0618]
[0619]
[0620]
[0621]
[0622]
[0623]
[0624]
[0625]
[0626]
[0627]
[0628]
[0629]
[0630]
[0631]
[0632]
[0633]
[0634]
[0635]
[0636]
[0637]
[0638]
[0639]
[0640]
[0641]
[0642]
[0643]
[0644]
[0645]
[0646]
[0647]
[0648]
[0649]
[0650]
[0651]
[0652]
[0653]
[0654]
[0655]
[0656]
[0657]
[0658]
[0659]
[0660]
[0661]
[0662]
[0663]
[0664]
[0665]
[0666]
[0667]
[0668]
[0669]
[0670]
[0671]
[0672]
[0673]
[0674]
[0675]
[0676]
[0677]
[0678]
[0679]
[0680]
[0681]
[0682]
[0683]
[0684]
[0685]
[0686]
[0687]
[0688]
[0689]
[0690]
[0691]
[0692]
[0693]
[0694]
[0695]
[0696]
[0697]
[0698]
[0699]
[0700]
[0701]
[0702]
[0703]
[0704]
[0705]
[0706]
[0707]
[0708]
[0709]
[0710]
[0711]
[0712]
[0713]
[0714]
[0715]
[0716]
[0717]
[0718]
[0719]
$!-----------------------------------------------------------------'f$verify(0)
$! SCRIPTS.COM
$!
$! Selectively installs or removes groups of WASD package scripts.
$! P1 can be "INSTALL" or "REMOVE" to install or remove ALL scripts.
$!
$! Copyright (C) 1996-2021 Mark G.Daniel.
$!
$! Licensed under the Apache License, Version 2.0 (the "License");
$! you may not use this file except in compliance with the License.
$! You may obtain a copy of the License at
$!
$!    http://www.apache.org/licenses/LICENSE-2.0
$!
$! Unless required by applicable law or agreed to in writing, software
$! distributed under the License is distributed on an "AS IS" BASIS,
$! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
$! See the License for the specific language governing permissions and
$! limitations under the License.
$!
$! 18-AUG-2021  MGD  v12.0.0, add [SRC.SCREPER]
$! 28-JUN-2019  MGD  v11.4.0, add WASDOC
$! 29-APR-2017  MGD  v11.1.0, add "Raw"Socket examples
$! 23-NOV-2014  MGD  remove CALENDAR, CHARSET, COLORS, GLIST, HDISK
$! 23-MAY-2013  MGD  add LINER utility
$! 26-DEC-2012  MGD  bugfix; remove WS_PTD.EXE
$! 02-OCT-2011  MGD  v10.1.0, add WebSocket examples
$! 07-NOV-2009  MGD  v10.0.0, logical naming schema
$!                   add HTTPD_ADMIN_REPORT_CLUSTER.COM
$! 27-AUG-2005  MGD  add IPCTICKLER utility
$! 30-APR-2005  MGD  bugfix; not copying CGIPLUSPROC.COM
$! 30-OCT-2004  MGD  add FORMWORK example
$! 23-DEC-2003  MGD  add CGILIB_EXAMPLE.EXE
$! 22-DEC-2002  MGD  server utility scripts
$! 01-NOV-2002  MGD  initial
$!-----------------------------------------------------------------------------
$!
$ if f$trnlnm("INSTALL$DBUG") .nes. "" then set verify
$ ss$_abort = 44
$ ss$_bugcheck = 676
$ arch_name = f$edit(f$getsyi("arch_name"),"upcase")
$ if arch_name .eqs. "ALPHA" then arch_name = "AXP"
$ say = "write sys$output"
$ vms_version = f$integer(f$extract(1,1,f$getsyi("version"))) * 10 +-
                f$integer(f$extract(3,1,f$getsyi("version")))
$ if vms_version .ge. 72 then set process /parse=traditional
$ set control=Y
$ on controly then exit ss$_abort
$!
$ install = 0
$ if p1 .eqs. "install" then install = 1
$ remove = 0
$ if p1 .eqs. "remove" then remove = 1
$ all = 0
$ if install .or. remove then all = 1
$!
$ if f$environment("depth") .eq. 1 then @wasd_root:[install]copyright.com
$!
$ type sys$input
                        *****************************
                        *  INSTALL PACKAGE SCRIPTS  *
                        *****************************

This procedure copies scripts from the package delivery or build locations into
the directories where the server scripting account can access them.  It will
also optionally remove them again.

It is considered more secure to make available to the server only those scripts
that a site will actually use.  Others do not need to be accessable.  This
procedure allows some scripts to be selected and others not.  All groups of
scripts may be individually accepted or declined.  This procedure may be
executed any number of times to tailor the local scripting environment.

Of course, individual or groups of scripts can manually be installed by copying
the required file(s) into the required directory(ies), and manually deinstalled
by deleting them.  Most scripts describe their requirements in the source code.

$ response =  "YES"
$ read sys$command response /prompt="Continue with this procedure? [YES]: "
$ say ""
$ if response .eqs. "" then response =  "YES"
$ if .not. response then exit
$!
$ existing_scripts = 0
$ if f$search("wasd_root:[cgi-bin]*.com") .nes. "" then existing_scripts = 1
$ if f$search("wasd_root:['arch_name'-bin]*.exe") .nes. "" then existing_scripts = 1
$ if existing_scripts
$ then
$ type sys$input
                       *******************************
                       *  EXISTING SCRIPTS DETECTED  *
                       *******************************

$ say "Files have been detected in [CGI-BIN] or [''arch_name'-BIN]."
$ type sys$input

These can all be deleted before commencing any further script installation. 
The advantage with this is you get a very "clean" script environment.  The
DISADVANTAGE (AND IT MAY BE A SIGNIFICANT ONE) is you lose any local scripts
you have not archived elsewhere and any customization to currently installed
scripts.

$    response =  "NO"
$    read sys$command response /prompt="Delete files from these directories? [NO]: "
$    say ""
$    if response .eqs. "" then response =  "NO"
$!
$    if response .or. remove
$    then
$       delete = "delete/log"
$       delete wasd_root:[cgi-bin]*.*;* /exclude=(.*;*,readme.*;*) 
$       delete wasd_root:['arch_name'-bin]*.*;* /exclude=(.*;*,readme.*;*) 
$       say ""
$    endif
$!
$ endif
$!
$ if arch_name .nes. "VAX"
$ then
$    type sys$input
                         ***************************
                         *  CGILIB SHARABLE IMAGE  *
                         ***************************

CGILIBSHR32 ... CGILIB in a sharable image

STARTUP.COM will detect the presence of this image and define the system-level
logical name WASD_CGILIBSHR32 that should be linked against.

(Not available for VAX where build dependencies are too proscriptive.)

$    response =  "NO"
$    if .not. all then read sys$command response /prompt="Install this image? [NO]: "
$    if response .eqs. "" then response =  "NO"
$    if response .or. install
$    then
$       say ""
$       copy = "copy/log"
$       set noon
$    copy wasd_root:['arch_name']cgilibshr32.exe wasd_root:['arch_name'-bin]
$    set on
$    say ""
$    else
$       response =  "NO"
$       if .not. all then read sys$command response /prompt="Remove this image (if installed)? [NO]: "
$       say ""
$       if response .eqs. "" then response =  "NO"
$       if response .or. remove
$       then
$          delete = "delete/log"
$          set noon
$          delete wasd_root:['arch_name'-bin]cgilibshr32.exe;*
$          set on
$          say ""
$       endif
$    endif
$ endif
$!
$ type sys$input
                        ****************************
                        *  SERVER UTILITY SCRIPTS  *
                        ****************************

PROXYMUNGE.EXE ....... reverse-proxy URL rewriting for HTML and CSS
QDLOGSTATS.EXE ....... Quick and Dirty LOG STATisticS
WASDOC.EXE ........... WASD Document Processor
HTTPD_ADMIN_REPORT_CLUSTER.COM ... additional detail via Server Admin report

$ response =  "NO"
$ if .not. all then read sys$command response /prompt="Install these scripts? [NO]: "
$ if response .eqs. "" then response =  "NO"
$ if response .or. install
$ then
$    say ""
$    copy = "copy/log"
$    set noon
$    copy wasd_root:['arch_name']proxymunge.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']qdlogstats.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:[src.wasdoc.obj_'arch_name']wasdoc.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:[script]httpd_admin_report_cluster.com wasd_root:[cgi-bin]
$    set on
$    say ""
$ else
$    response =  "NO"
$    if .not. all then read sys$command response /prompt="Remove these scripts (if installed)? [NO]: "
$    say ""
$    if response .eqs. "" then response =  "NO"
$    if response .or. remove
$    then
$       delete = "delete/log"
$       set noon
$       delete wasd_root:['arch_name'-bin]proxymunge.exe;*
$       delete wasd_root:['arch_name'-bin]qdlogstats.exe;*
$       delete wasd_root:['arch_name'-bin]wasdoc.exe;*
$       delete wasd_root:[cgi-bin]httpd_admin_report_cluster.com;*
$       set on
$       say ""
$    endif
$ endif
$!
$ type sys$input
                          ************************
                          *  USEFUL VMS SCRIPTS  *
                          ************************

Conan The Librarian ..... Help and Text Library access
HyperReader ............. Online Documentation, Bookreader and BNU access
HyperSPI ................ System Performance Information
SHOW ...................  provides system information (must be enabled)

$ response =  "NO"
$ if .not. all then read sys$command response /prompt="Install these scripts? [NO]: "
$ if response .eqs. "" then response =  "NO"
$ if response .or. install
$ then
$    say ""
$    copy = "copy/log"
$    set noon
$    copy wasd_root:[script]conan.com wasd_root:[cgi-bin]
$    copy wasd_root:['arch_name']conan.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:[script]hypershelf.com wasd_root:[cgi-bin]
$    copy wasd_root:['arch_name']hypershelf.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:[script]hyperreader.com wasd_root:[cgi-bin]
$    copy wasd_root:['arch_name']hyperreader.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:[script]hyperspi.com wasd_root:[cgi-bin]
$    copy wasd_root:['arch_name']hyperspi.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:[script]show.com wasd_root:[cgi-bin]
$    set on
$    say ""
$ else
$    response =  "NO"
$    if .not. all then read sys$command response /prompt="Remove these scripts (if installed)? [NO]: "
$    say ""
$    if response .eqs. "" then response =  "NO"
$    if response .or. remove
$    then
$       delete = "delete/log"
$       set noon
$       delete wasd_root:[cgi-bin]conan.com;*
$       delete wasd_root:['arch_name'-bin]conan.exe;*
$       delete wasd_root:[cgi-bin]hypershelf.com;*
$       delete wasd_root:['arch_name'-bin]hypershelf.exe;*
$       delete wasd_root:[cgi-bin]hyperreader.com;*
$       delete wasd_root:['arch_name'-bin]hyperreader.exe;*
$       delete wasd_root:[cgi-bin]hyperspi.com;*
$       delete wasd_root:['arch_name'-bin]hyperspi.exe;*
$       delete wasd_root:[cgi-bin]show.com;*
$       set on
$       say ""
$    endif
$ endif
$!
$ type sys$input
                        *****************************
                        *  DOCUMENT/FILE SEARCHING  *
                        *****************************

QUERY and EXTRACT are scripts that can be used to perform ad hoc searching of
HTML and plain-text documents and files, returning all or partial documents.
The scope of where they can search should be carefully controlled but they can
be very useful.  Check script source descriptive prologue for more detail.

$ response =  "NO"
$ if .not. all then read sys$command response /prompt="Install these scripts? [NO]: "
$ if response .eqs. "" then response =  "NO"
$ if response .or. install
$ then
$    say ""
$    copy = "copy/log"
$    set noon
$    copy wasd_root:[script]query.com wasd_root:[cgi-bin]
$    copy wasd_root:['arch_name']query.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:[script]extract.com wasd_root:[cgi-bin]
$    copy wasd_root:['arch_name']extract.exe wasd_root:['arch_name'-bin]
$    set on
$    say ""
$ else
$    response =  "NO"
$    if .not. all then read sys$command response /prompt="Remove these scripts (if installed)? [NO]: "
$    say ""
$    if response .eqs. "" then response =  "NO"
$    if response .or. remove
$    then
$       delete = "delete/log"
$       set noon
$       delete wasd_root:[cgi-bin]query.com;*
$       delete wasd_root:['arch_name'-bin]query.exe;*
$       delete wasd_root:[cgi-bin]extract.com;*
$       delete wasd_root:['arch_name'-bin]extract.exe;*
$       set on
$       say ""
$    endif
$ endif
$!
$ type sys$input
                   ***************************************
                   *  CGIPLUS/RTE DEMONSTRATION SCRIPTS  *
                   ***************************************

The CGIplus demonstration scripts are examples of how to create persistent
scripting using DCL and the C language.  See the "Scripting Overview" document
for further information on CGIplus.

Includes the CGIsapi (ISAPI) environment and demonstration DLL.

Includes the RTE (Run Time Environment) example interpreter.

$ response =  "NO"
$ if .not. all then read sys$command response /prompt="Install these scripts? [NO]: "
$ if response .eqs. "" then response =  "NO"
$ if response .or. install
$ then
$    say ""
$    copy = "copy/log"
$    set noon
$    copy wasd_root:[script]cgiplusproc.com wasd_root:[cgi-bin]
$    copy wasd_root:[script]cgicalloutproc.com wasd_root:[cgi-bin]
$    copy wasd_root:[script]cgicalloutsinglebyte.com wasd_root:[cgi-bin]
$    copy wasd_root:[script]cgipluscalloutproc.com wasd_root:[cgi-bin]
$    copy wasd_root:['arch_name']cgicallout.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']cgipluscallout.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']cgiplusdemo.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']cgiplusloop.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']cgiplusskel.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']cgiplustest.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']cgisapi.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']isapiexample.dll wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']rte_example.exe wasd_root:['arch_name'-bin] 
$    copy wasd_root:['arch_name']cgilib_example.exe wasd_root:['arch_name'-bin]
$    set on
$    say ""
$ else
$    response =  "NO"
$    if .not. all then read sys$command response /prompt="Remove these scripts (if installed)? [NO]: "
$    say ""
$    if response .eqs. "" then response =  "NO"
$    if response .or. remove
$    then
$       delete = "delete/log"
$       set noon
$       delete wasd_root:[cgi-bin]cgicalloutproc.com;*
$       delete wasd_root:[cgi-bin]cgicalloutsinglebyte.com;*
$       delete wasd_root:[cgi-bin]cgipluscalloutproc.com;*
$       delete wasd_root:['arch_name'-bin]cgicallout.exe;*
$       delete wasd_root:['arch_name'-bin]cgipluscallout.exe;*
$       delete wasd_root:['arch_name'-bin]cgiplusdemo.exe;*
$       delete wasd_root:['arch_name'-bin]cgiplusloop.exe;*
$       delete wasd_root:['arch_name'-bin]cgiplusskel.exe;*
$       delete wasd_root:['arch_name'-bin]cgiplustest.exe;*
$       delete wasd_root:['arch_name'-bin]cgisapi.exe;*
$       delete wasd_root:['arch_name'-bin]isapiexample.dll;*
$       delete wasd_root:['arch_name'-bin]rte_example.exe;*
$       delete wasd_root:['arch_name'-bin]cgilib_example.exe;*
$       set on
$       say ""
$    endif
$ endif
$!
$ type sys$input
                       *******************************
                       *  DCL DEMONSTRATION SCRIPTS  *
                       *******************************

The DCL demonstration scripts are examples of CGI scripting using DCL.

CGI_SYMBOLS.COM ....... displays the CGI variables available to a script
CGIUTL.EXE ............ utility for assisting with DCL scripts
COOKIE_DEMO.COM ....... an example of cookie manipulation using DCL.
FORMWORK.EXE .......... HTML form data validation and CSV processor
IPCTICKLER.EXE ........ script programmer <stdio> education tool
TMAILER.EXE ........... email using a template

Some include using the CGIUTL utility within the DCL environment.

$ response =  "NO"
$ if .not. all then read sys$command response /prompt="Install these scripts? [NO]: "
$ if response .eqs. "" then response =  "NO"
$ if response .or. install
$ then
$    say ""
$    copy = "copy/log"
$    set noon
$    copy wasd_root:[script]cookie_demo.com wasd_root:[cgi-bin]
$    copy wasd_root:[script]cgi_symbols.com wasd_root:[cgi-bin]
$    copy wasd_root:[script]cgiutl*.com wasd_root:[cgi-bin]
$    copy wasd_root:['arch_name']cgiutl.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:[script]face2face.com wasd_root:[cgi-bin]
$    copy wasd_root:[script]formwork_example.com wasd_root:[cgi-bin]
$    copy wasd_root:['arch_name']formwork.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']ipctickler.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']tmailer.exe wasd_root:['arch_name'-bin]
$    set on
$    say ""
$ else
$    response =  "NO"
$    if .not. all then read sys$command response /prompt="Remove these scripts (if installed)? [NO]: "
$    say ""
$    if response .eqs. "" then response =  "NO"
$    if response .or. remove
$    then
$       delete = "delete/log"
$       set noon
$       delete wasd_root:[cgi-bin]cookie_demo.com;*
$       delete wasd_root:[cgi-bin]cgi_symbols.com;*
$       delete wasd_root:[cgi-bin]cgiutl*.com;*
$       delete wasd_root:['arch_name'-bin]cgiutl.exe;*
$       delete wasd_root:[cgi-bin]face2face.com;*
$       delete wasd_root:[cgi-bin]formwork_example.com;*
$       delete wasd_root:['arch_name'-bin]formwork.exe;*
$       delete wasd_root:['arch_name'-bin]ipctickler.exe;*
$       delete wasd_root:['arch_name'-bin]tmailer.exe;*
$       set on
$       say ""
$    endif
$ endif
$!
$ type sys$input
                            *********************
                            *  SCREPER SCRIPTS  *
                            *********************

SCREPER.C is terminal output to web page code.  Somewhat experimental.
These utilities demonstrate its capabilities as well as being useful.
Each requires authorisation to be activated.

SadHoc .......... ad hoc in-browser DCL command utility
sHTTPDmon ....... the HTTPDmon utility running in a browser
sMONitor ........ in-browser system MONITOR utility

$ response =  "NO"
$ if .not. all then read sys$command response /prompt="Install these scripts? [NO]: "
$ if response .eqs. "" then response =  "NO"
$ if response .or. install
$ then
$    say ""
$    copy = "copy/log"
$    set noon
$    copy wasd_root:['arch_name']sadhoc.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']shttpdmon.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']smonitor.exe wasd_root:['arch_name'-bin]
$    set on
$    say ""
$ else
$    response =  "NO"
$    if .not. all then read sys$command response /prompt="Remove these scripts (if installed)? [NO]: "
$    say ""
$    if response .eqs. "" then response =  "NO"
$    if response .or. remove
$    then
$       delete = "delete/log"
$       set noon
$       delete wasd_root:['arch_name'-bin]sadhoc.exe;*
$       delete wasd_root:['arch_name'-bin]shttpdmon.exe;*
$       delete wasd_root:['arch_name'-bin]smonitor.exe;*
$       set on
$       say ""
$    endif
$ endif
$!
$ type sys$input
                         ***************************
                         *  MISCELLANEOUS SCRIPTS  *
                         ***************************

Fetch ........... can get pages and other resources from HTTP servers
Liner ........... list a text file with leading line numbers

$ response =  "NO"
$ if .not. all then read sys$command response /prompt="Install these scripts? [NO]: "
$ if response .eqs. "" then response =  "NO"
$ if response .or. install
$ then
$    say ""
$    copy = "copy/log"
$    set noon
$    copy wasd_root:['arch_name']fetch.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:[script]fetch_example.com wasd_root:[cgi-bin]
$    copy wasd_root:['arch_name']liner.exe wasd_root:['arch_name'-bin]
$    set on
$    say ""
$ else
$    response =  "NO"
$    if .not. all then read sys$command response /prompt="Remove these scripts (if installed)? [NO]: "
$    say ""
$    if response .eqs. "" then response =  "NO"
$    if response .or. remove
$    then
$       delete = "delete/log"
$       set noon
$       delete wasd_root:['arch_name'-bin]fetch.exe;*
$       delete wasd_root:[cgi-bin]fetch_example.com;*
$       delete wasd_root:['arch_name'-bin]liner.exe;*
$       set on
$       say ""
$    endif
$ endif
$!
$ type sys$input
                          ************************
                          *  WEBSOCKET EXAMPLES  *
                          ************************

Bench ........... measures platform raw WebSocket throughput
Chat ............ yet another simple chat program
Echo ............ echoes what's typed
Mouse ........... distributing your mouse coordinates

$ response =  "NO"
$ if .not. all then read sys$command response /prompt="Install these scripts? [NO]: "
$ if response .eqs. "" then response =  "NO"
$ if response .or. install
$ then
$    say ""
$    copy = "copy/log"
$    set noon
$    copy wasd_root:['arch_name']ws_bench.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']ws_chat.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']ws_echo.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']ws_mouse.exe wasd_root:['arch_name'-bin]
$    set on
$    say ""
$ else
$    response =  "NO"
$    if .not. all then read sys$command response /prompt="Remove these scripts (if installed)? [NO]: "
$    say ""
$    if response .eqs. "" then response =  "NO"
$    if response .or. remove
$    then
$       delete = "delete/log"
$       set noon
$       delete wasd_root:['arch_name'-bin]ws_bench.exe;*
$       delete wasd_root:['arch_name'-bin]ws_chat.exe;*
$       delete wasd_root:['arch_name'-bin]ws_echo.exe;*
$       delete wasd_root:['arch_name'-bin]ws_mouse.exe;*
$       set on
$       say ""
$    endif
$ endif
$!
$ type sys$input
                         **************************
                         *  "RAW"SOCKET EXAMPLES  *
                         **************************

Chat ............ simple chat program using telnet client
Echo ............ echoes what's typed using telnet client
PTD ............. Pseudo-Terminal Driver "telnet" server (NOT for production)

$ response =  "NO"
$ if .not. all then read sys$command response /prompt="Install these scripts? [NO]: "
$ if response .eqs. "" then response =  "NO"
$ if response .or. install
$ then
$    say ""
$    copy = "copy/log"
$    set noon
$    copy wasd_root:['arch_name']raw_chat.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']raw_echo.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']raw_ptd.exe wasd_root:['arch_name'-bin]
$    set on
$    say ""
$ else
$    response =  "NO"
$    if .not. all then read sys$command response /prompt="Remove these scripts (if installed)? [NO]: "
$    say ""
$    if response .eqs. "" then response =  "NO"
$    if response .or. remove
$    then
$       delete = "delete/log"
$       set noon
$       delete wasd_root:['arch_name'-bin]raw_chat.exe;*
$       delete wasd_root:['arch_name'-bin]raw_echo.exe;*
$       delete wasd_root:['arch_name'-bin]raw_ptd.exe;*
$       set on
$       say ""
$    endif
$ endif
$!
$ type sys$input
                   **************************************
                   *  OSU/DECNET DEMONSTRATION SCRIPTS  *
                   **************************************

These are some OSU demonstration scripts (from the OSU package).
There are also WASD-specific CGI DECnet script examples.

$ response =  "NO"
$ if .not. all then read sys$command response /prompt="Install these scripts? [NO]: "
$ if response .eqs. "" then response =  "NO"
$ if response .or. install
$ then
$    say ""
$    copy = "copy/log"
$    set noon
$    copy wasd_root:['arch_name']cgi_symbols.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']html_preproc.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']html_preproc.com wasd_root:[cgi-bin]
$    copy wasd_root:['arch_name']set_dcl_env.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']dcl_env_rm.com wasd_root:[cgi-bin]
$    copy wasd_root:['arch_name']osu_testcgi.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']osu_testform.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']tmail.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']vmshelpgate.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']helpgate.com wasd_root:[cgi-bin]
$    copy wasd_root:['arch_name']webbook.exe wasd_root:['arch_name'-bin]
$    copy wasd_root:['arch_name']cgiwasd.com wasd_root:[cgi-bin]
$    copy wasd_root:['arch_name']wwwexec.com wasd_root:[cgi-bin]
$    set on
$    say ""
$ else
$    response =  "NO"
$    if .not. all then read sys$command response /prompt="Remove these scripts (if installed)? [NO]: "
$    say ""
$    if response .eqs. "" then response =  "NO"
$    if response .or. remove
$    then
$       delete = "delete/log"
$       set noon
$       delete wasd_root:['arch_name'-bin]cgi_symbols.exe;*
$       delete wasd_root:['arch_name'-bin]html_preproc.exe;*
$       delete wasd_root:[cgi-bin]html_preproc.com;*
$       delete wasd_root:['arch_name'-bin]set_dcl_env.exe;*
$       delete wasd_root:[cgi-bin]dcl_env_rm.com;*
$       delete wasd_root:['arch_name'-bin]osu_testcgi.exe;*
$       delete wasd_root:['arch_name'-bin]osu_testform.exe;*
$       delete wasd_root:['arch_name'-bin]tmail.exe;*
$       delete wasd_root:['arch_name'-bin]vmshelpgate.exe;*
$       delete wasd_root:[cgi-bin]helpgate.com;*
$       delete wasd_root:['arch_name'-bin]webbook.exe;*
$       delete wasd_root:[cgi-bin]cgiwasd.com;*
$       delete wasd_root:[cgi-bin]wwwexec.com;*
$       set on
$       say ""
$    endif
$ endif
$!
$ type sys$input
                      ********************************
                      *  JAVA DEMONSTRATION CLASSES  *
                      ********************************

The JAVA.COM java script wrapper procedure and example Java classes.

$ response =  "NO"
$ if .not. all then read sys$command response /prompt="Install these scripts? [NO]: "
$ if response .eqs. "" then response =  "NO"
$ if response .or. install
$ then
$    say ""
$    copy = "copy/log"
$    set noon
$    copy wasd_root:[script]java.com wasd_root:[cgi-bin]
$    copy wasd_root:[script]cgiplus.class wasd_root:[cgi-bin]
$    copy wasd_root:[script]dumpcgi.class wasd_root:[cgi-bin]
$    copy wasd_root:[script]hi1cgi.class wasd_root:[cgi-bin]
$    copy wasd_root:[script]hi1cgiplus.class wasd_root:[cgi-bin]
$    copy wasd_root:[script]hi2cgi.class wasd_root:[cgi-bin]
$    copy wasd_root:[script]hi2cgiplus.class wasd_root:[cgi-bin]
$    copy wasd_root:[script]postcgi.class wasd_root:[cgi-bin]
$    copy wasd_root:[script]postcgiplus.class wasd_root:[cgi-bin]
$    set on
$    say ""
$ else
$    response =  "NO"
$    if .not. all then read sys$command response /prompt="Remove these scripts (if installed)? [NO]: "
$    say ""
$    if response .eqs. "" then response =  "NO"
$    if response .or. remove
$    then
$       delete = "delete/log"
$       set noon
$       delete wasd_root:[cgi-bin]java.com;*
$       delete wasd_root:[cgi-bin]cgiplus.class;*
$       delete wasd_root:[cgi-bin]dumpcgi.class;*
$       delete wasd_root:[cgi-bin]hi1cgi.class;*
$       delete wasd_root:[cgi-bin]hi1cgiplus.class;*
$       delete wasd_root:[cgi-bin]hi2cgi.class;*
$       delete wasd_root:[cgi-bin]hi2cgiplus.class;*
$       delete wasd_root:[cgi-bin]postcgi.class;*
$       delete wasd_root:[cgi-bin]postcgiplus.class;*
$       set on
$       say ""
$    endif
$ endif
$!
$ type sys$input
                      ********************************
                      *  [LOCAL]INSTALL_SCRIPTS.COM  *
                      ********************************

This convenience procedure may be created and maintained by local site
administration with DCL commands to ensure that required local site scripts are
correctly set up and/or configured for correct operation following an update or
reapplication of site security.

$ if f$search("wasd_root:[local]install_scripts.com") .eqs. ""
$ then
$    type sys$input
This procedure was NOT FOUND on this site!

$ else
$    response =  "YES"
$    if .not. all then read sys$command response /prompt="Execute this procedure? [YES]: "
$    if response .eqs. "" then response =  "YES"
$    if response
$    then
$       set noon
$       @WASD_ROOT:[LOCAL]INSTALL_SCRIPTS.COM
$       set on
$    endif
$ endif
$!
$ type sys$input
                   ***************************************
                   *  INSTALL SCRIPTS   C O M P L E T E  *
                   ***************************************

$ exit
$!-----------------------------------------------------------------------------