% VAX-11 Librarian V04-00ܜZ+8Gh tttZ8NI5q$AMBYAMBYLIBS AMBYUTILS6 Amby_SetupASERVER Author Background$BROAD BUILD_PROD$BYE$dCD$CLSCVTIMEDAILY DAILY_HILITESX Date_UpdatedDCL7 DCLCHANGES DCLSHRINK%&DE%DEL*ETDIDCMS%ZDIR Directories&DIRSDISKUSEDOCCMSEDTEMPEVERYLIB&FFILES&GROUP  Help_amby'|HLP'MAIL'MEM(lMSG_OFFPUR*RG*PWDREALDIRREMDISK!REMDO+RREMOVE"SBO_DO$SETKITS%SETROOT Setting_Up+SH*OW#SIG_TAPE_BUILDGSIG_TAPE_UPDATE+(SPELLING+SQA+SQAF+SQF/STDIO+SUBSYMBOLS SYS$LOGIN_directory,T*YPE4Table_of_Contents1 TEXLISMMS4TIMER6TOOLCMSFTOOLKITS8TOOLMOVE,TOP,~TOPBIO*RSKUSELESSU Utilities.rVDL.HVMS.W132.W80/:WELCOME<DOCCMSMSG_OFFPWDTOPBIOWRKCOME( MSG_ON(MVNO)<NOBROAD)PARENTPARSE) PRINT)JPROD PRODSTATUS[Products)PROJ PROJLIBS  PROJSTATUS)PROTPRT_NOTE*<PUBLIC*PUR*RG*PWD&tDTR*32&EDTEMPV ENVIRONMENTEVERYLIB EVERYLIB_INFO&FFILESFILE_ATTRIBUTESGETDVIGETJPIGETSYI&GROUP5 Help_amby HIGHLIGHTSlHLBQUALS'|HLP INSTALL_EDT INSTALL_PRODINTERNETLOGICALSLOGREPS'MAILMAILCMDMAILFILE MAILSEARCH MAIL_FOLDERSMARKREPS'MEMMKE_DOMONTHLY_HILITES(lMSG_OFF-TOPCPU-UNPROT-VUP-USE*RSKUSELESS Utilities.rVDL.HVMS.W132.W80/:WELCOMELWRK  NZL+1 Author Donald E. Ambyt& Harnischfeger Engineers, Inc.; P.O. Box 1512 or 13400 Bishops Laneg= Milwaukee, WI 53201 Brookfield, WI 53005) 414-797-6713, 414-797-6533 (FAX)a DECUServe,DCS: AMBYr# CompuServe: 73547,3256o7 Internet: don@amby.mixcom.com (home)y< amby@eisner.decus.org (DECUServe)7 UUCP: uunet!mixcom!amby!don (home)n@ {decwrl,nosc,crash}!simpact!eisner!ambywwe whether or not toI output a message with the filename and parameters. This is to beH able to get an execution trace by the use of the command DEFINE DCL_TRACE TRUE.H 2. Check what the current mode this is being run in, and branch to that section of logic. - BATCHG (1) Set values for AMBY_LOGIN, AMBY_LOGIN to be YES, BATCHI @ZL+1 SYS$LOGIN_directoryrIThis directory is the root of my login environment, which has a LOGIN.COM Kfile that is run at login time. There is also a SETUP.COM file that definescJall of my logical names, global symbols, keys, etc. that define my working environment.KThese were designed to function on the VAXcluster where I do all of my real Hwork, and these files expect certain things to be defined (in the systemlogical name table).wwet up.B (2) See if th -ZL+ 1 BackgroundMMany years ago I adopted the convention of making software tools available asMpart of a set of tools, which I refer to as a 'toolkit'. Basically, a toolkit Mrefers to a directory somewhere in the file system where there is to be found "a SETUP.COM file that you can run.JRunning this SETUP.COM file will then define all that you need to make theFtools in the toolkit available. This typically means the definition ofHlogical names (in order to point to files, d irectories, etc.) and globalIsymbols (to run *.COM or *.EXE files that implement a tool). In addition,vIsometimes it may use a Command Definition Utility (CDU) to define new DCL.6command verbs (with the SET COMMAND and a *.CLD file).LMuch of this philosophy is the result of some of the good things that I have!seen on numerous DECUS SIG tapes. LA goal of mine has always been to make tools as portable as possible, acrossMVAX/VMS systems (running the same version of VMS). I currently am running VMSe@V5.4-3, so I would expect everything to work on similar systems.wwHLP$LIBRARY_1, ...).I 5. Return to the directory where you originally were before you ran this.B 6. If the logical name SITE_DATA_DIR exists, then delete it.I 7. Display the current diskquota for the user running this, for the current device.' 8. enable CONTROL/Y and CONTROL/T 3 SubroutinesHThe following are local subroutines (Version V5.0 and later format) thatZL+ 1 Setting_UpIIn order to set up my environment and tools you need to run the LOGIN.COMtJfile, which will in turn run the SETUP.COM file (and all other DCL command procedures).4 LOGIN.COM My login command procedure.? SETUP.COM Overall setup for this set of tools.sE SETLOGS.COM Defines logical names (AMBY_ROOT based).4 SETSYMBS.COM Defines global symbols.. SETKEYS.COM Defines DCL keys.KThe following is all that is necessary on the system where I work, and haveIall of these files.s $ @LOGIN.IIf you are not running these from the system where I maintain this stuff,AJthen you will need to do something special. This is to compensate for someKlogicals and symbols not being defined already for you (like they are on myrsystem). $ @LOGINe $ [.RUN]SETUP $ @LOGINswwo beH able to get an execution trace by the use of the command DEFINE ZL+ 1 Directories JThe following is a list of the important subdirectories which can be foundbelow my SYS$LOGIN directory.i2 [.AMBY] Personal stuff of my own.G [.BBS] Downloads from various Bulletin Board Systems.e2 [.BOOKS] Work on book review, etc.B [.CDD] My CDD dictionary (for DATATRIEVE stuff). [.CMSLIBS] N [.DAT] Data files used by RSLIB tools, to drive environment.K [.DATA] Data files used by SET_PROJ, SET_PROD, etc. tools. - [.DECUS] DECUS related stuff. D [.DEV] Development areas for collections of tools.= [.DOC] Documentation related to tools, etc. I [.EXE] Executables (*.COM,*.EXE,*.OBJ,*.OLB) for tools.oC [.HELP] Help library (and help sources) for tools. : [.ISEE] ISEE tools personal working area.; [.NOTES] VAX Notes related files and tools.37 [.RUN] Run-time area for my toolkits. 3 [.SITE] Site specific definitions. E [.TOOLKITS] Various collections of older tools that I am 5 in the process of replacing. ww show symb password& f20 type/page nl:4 Gold1DDefine all of the GOLD1 state key definitions (next state is GOLD2).. pf1 change state to GOLD23 pf2 show GOLD1 key definitions"qL+ 1 UtilitiesrKA number of tools are also contained in the AMBY_EXE directory, that do notr<(NORMALLY) have global symbols defined in order to use them.LThose with a "*" after them have symbols defined with the AMBYUTILS command.2 CONTEXT_SET.COM FThis is Don Amby's RSLIB SET CONTEXT tool tailoring procedure, that isJinvoked be defining the logical name PROD_SET to be the following command.4 $ DEFINE CONTEXT_SET "@directory:PROD_SET" 3 Logicals7The following logical names are used by this procedure.m * PROJ_NAME - * CONTEXT_NAME -  * CONTEXT_TOP - l3 FilesaCThe following files are referenced, relative to where this file is.e1 * SET_PROC_NAME.COM - to set process name. 3 ProcessingF 1. Use the logical name DCL_TRACE to determine whether or not toI output a message with the filename and parameters. This is to benH able to get an execution trace by the use of the command DEFINE DCL_TRACE TRUE.- 2. Set up interrupt and error handlers. G 3. Check to be sure that a Project and Context is defined. If the D logical names PROJ_NAME or CONTEXT_NAME are undefined, just bypass everything. 3 4. Use SET_PROC_NAME.COM to set process name. & 5. Change directory context top. 2 CVTIME.COM*KTest procedure that will excercise some of the capabilies of the F$CVTIME()olexical function.c 2 DIDCMS.COM* DDCL command procedure that will insert all of the source files for aFstandard DID (Data Item Description) for the DOCTOOLS into the currentDEC/CMS library.A $ DIDCMS name "description of DID" cre-quals ins-quals 3 Parameters Parm Function 7 ---- --------------------------------------o p1 DID name., p2 DID description (for group)8 p3 Qualifiers for all CMS CREATE ELEMENTs.8 p4 Qualifiers for all CMS INSERT ELEMENTs. 3 Processing5 a. If there is a DID_CMS.COM file, then run it. 0 b. Create DEC/CMS group for all DID files. 3 ExamplesAThe following are some simple examples of how to use this tool... 2 DOCCMS.COM*tDDCL command procedure that will insert all of the source files for a3standard document into the current DEC/CMS library.tF $ DOCCMS name "description of document" cre-quals ins-quals 3 Parameters Parm Functionu7 ---- --------------------------------------r p1 Document name. 1 p2 Document description (for group)r8 p3 Qualifiers for all CMS CREATE ELEMENTs.8 p4 Qualifiers for all CMS INSERT ELEMENTs. 3 Processing: a. If there is a document_CMS.COM file, then run it.5 b. Create DEC/CMS group for all document files.AI c. Create the elements for document files, and insert each into thet overall document group. 3 Subroutines3 1. ADD_ELEo 3 ExamplesI * Insert files for the TEST document into the current CMS library.3 $ DOCCMS TEST "Test document..." 2 ENVIRONMENT.COM*IVery quick and dirty DCL tool to generate a list of all that you can know Iabout the current VMS system, writing the results into the NODE_SPECIFIC: directory. $ ENVIRONMENT 3 Example $ ENVIRONMENTA $ show license/brief /out=NODE_SPECIFIC:SHOW-LICENSE.LOGo9 $ show memory /out=NODE_SPECIFIC:SHOW-MEMORY.LOG C $ show working_set /out=NODE_SPECIFIC:SHOW-WORKING_SET.LOGd> $ @amby_exe:getsyi /out=NODE_SPECIFIC:SHOW-GETSYI.LOGG $ dcl/out=NODE_SPECIFIC:SHOW-symbol.log show symbol/all/global K $ show logical/process /out=NODE_SPECIFIC:SHOW-LOGICAL-PROCESS.LOGrJ $ show logical/system /out=NODE_SPECIFIC:SHOW-LOGICAL-SYSTEM.LOG? $ show process/all /out=NODE_SPECIFIC:SHOW-PROCESS.LOG P $ library/full/list=NODE_SPECIFIC:SHOW-helplib.log sys$help:helplib.hlb8 $ verb * /list /out=NODE_SPECIFIC:SHOW-VERB.LOGH $ show queue/full/batch /out=NODE_SPECIFIC:SHOW-QUEUE-BATCH.LOGJ $ show queue/full/device /out=NODE_SPECIFIC:SHOW-QUEUE-DEVICE.LOG3 AuthorDon Amby, 30-Oct-1991.2 EVERYLIB_INFO.COM*HThis procedure can be used to generate some monthly reports based on the8CMS libraries that are established by the EVERYLIB tool." $ @AMBY_EXE:EVERYLIB-INFO2 FILE_ATTRIBUTES.COM*JSimple interface for runni ng the F$FILE_ATTRIBUTES() lexical function. You5must use the AMBYUTILS command to define this utility & $ FILE_ATTRIBUTES file [item] 3 Parameters a. file 9 Required name of a valid VMS file specification. b. itemH Optional item for lexical function. If you omit this, the it is= equivalent to "*" which indicates to list ALL items. 3 ReferenceeHFor information on the items that can be used with the F$FILE_ATTRIBUTESElexical functi!on, see the HELP LEXICAL F$FILE_ATTRIBUTES topic or the VAX/VMS DCL Dictionary. 3 ProcessingG a. Check to see if an item was entered. If none was specified (or 5 if it was "*") then display a complete list. 2 GETDVI.COM*uJSimple interface for running the F$GETDVI() lexical function. You must use,the AMBYUTILS command to define this utility& $ GETDVI [device-name [item]]GFor information on the items that can be used with the F$GETDVI lexicale@function, see th"e HELP LEXICAL F$GETDVI topic or the VAX/VMS DCL Dictionary.x 3 ProcessingG a. Check to see if user specified a device. If not, then just uset SYS$DISK.I b. Check to see if second parameter of an item was entered. If noneeG was specified (or if it was "*") then display a complete list.e 2 GETJPI.COM*hJSimple interface for running the F$GETJPI() lexical function. You must use,the AMBYUTILS command to define this utility $ GETJPI [pid [item]] 3 Pa0rameters a. pidE Optional process id. If omitted, it is assumed to be the the current process.e b. item H Optional item for lexical function. If you omit this, the it is= equivalent to "*" which indicates to list ALL items.a 3 ReferencecGFor information on the items that can be used with the F$GETJPI lexical@function, see the HELP LEXICAL F$GETJPI topic or the VAX/VMS DCL Dictionary. 3 ProcessingG a. Check to see if an itemw@.X+1 SIG_TAPE_BUILDEThis is used to create the backup saveset for the DECUS L&T SIG tape.H $ @SIG_TAPE_BUILD tape_saveset backup_quals in_quals out_qualsWhere:9 * tape_saveset Tape (logical) and saveset name.f; * backup_quals optional backup command qualifiersf< * in_quals optional input file spec qualifiers= * out_quals optional output file spec qualifiersa2 ToolsdHThe following is a list of some non-st%@X1 AMBYAUse this command to set your default to Don Amby's login root, asAMBY_ROOT:[000000].ww 1 BROADKDisable broadcast message to the current terminal. This is just a shorthandfor SET TERMINAL /NOBROAD.wwr1 BYE/Short logoff which is the same as LOGOFF/BRIEF.wwr1 CDDChange default directory. This is another shorthand for SET DEFAULT.ww@1 CLS1Clear the terminal scree&n. Same as TYPE/PAGE NL:.ww@1 DE>Delete and entry from a queue, as this is just a shorthand for"DELETE/ENTRY=" command.ww1 DEL*ETLDelete a file, and confirm whether to delete it. This is a shorthand for theF"DELETE/CONF" command, to protect you from deleting a file too quicklyww1 DIRMDirectory command that will display enough information in order to be useful.EThis is a shorthand for "DIRECTORY/COL=1/SIZE=ALL/PROT/D'ATE" command.ww1 DIRS5Use the DIR command to generat a list of *.DIR files.ww !1 DTR*32HInvokes DATATRIEVE, using format that most applications seem to require.ww1 EDT?Shorthand for "EDIT/EDT" in order to invoke simple text editor.ww1 FILESJGenerates a listing of files, as a shortand for "DIRECTORY/NOHEAD/NOTRAIL"command.ww;1 GROUPMChanges the protection on a file( to be GROUP readable, and disables access by?the WORLD. This is a shorthand for "SET PROT=(G:RE,W)" command.ww@1 HLPBShort form of help command, instead of typing the complete command"HELP/NOINST/PAGE".ww@1 MAILFDefines mail to invoke the editor whenever you want to send, reply, orFforward a mail message. This is a shorthand for the following command.1 $ MAIL/EDIT=(SEND,REPLY=EXTRACT,FORWARD)wwH1 MEMJDi)splay the current process dynamic memory, which is a shorthand for "SHOWPROCESS/MEM" command.ww 1 MSG_OFFBDisable message display, as a shorthand for the following command.2 $ SET MESSAGE /NOFAC/NOSEV/NOIDENT/NOTEXTww V1 MSG_ONAEnable message display, as a shorthand for the following command.* $ SET MESSAGE /FAC/SEV/IDENT/TEXTww`c1 MVLMove a file from one directory to another, on the same physical de*vice. This$is the same as "RENAME/LOG" command.ww 1 NOBROADLDisable broadcast messages from being displayed, by a shorthand for the "SETTERM/NOBROADCAST" command.ww1 PARENTAttach the parent process.wwp1 PRINTPrint with notification.ww@1 PROD,Display what is the current defined Product.ww}1 PROJ,Display what is the current defined Project.ww}1 +PROTEProtect a file from accidental deletion, which is a shorthand for thefollowing command.# SET PROTECTION=(S:RE,O:RE)ww1 PUR*RGGPurge files, but also display a message whenever any files are actually5deleted. This is a shorthand for "PURGE/LOG" command.ww1 PUBLICLChanges the file protection so that a file is publically readable. This is a1shorthand for the "SET PROT=(G:RE,W:RE)" command.ww`1 PWDE,Print the current working directory, instead of using "SHOW DEFAULT".ww1 REMOVEHDelete a file, but be sure that you do not try to delete any CMS libraryfiles by accident.ww1 SH*OW-This is a shortened form of the SHOW command.ww 1 SPELLING4Invoke the spelling checker, with a EDT type keypad.ww@,1 SQAww@a1 SQAFww1 SQFwwn1 SUB-LShorthand for "SUBMIT/NOTIFY/NOPRINT" so that anytime you submit a batch jobB(using this) you are notified and the log file is not printed out.wwn1 T*YPEShort version of TYPE command.ww 1 TOPJChange directory to the root (Master File Directory) for the current disk.+This is the same as "SET DEFAULT [000000]".ww{1 TOPBIOFDisplay top buffered I/O users, by using actually running the "MONITORPROC/TOPBIO" command.w.w`1 TOPCPUJDisplay top CPU users, by using actually running the "MONITOR PROC/TOPCPU"command.ww1 UNPROTHChanges the protection on a file to be fully accessible by the OWNER andMSYSTEM. This is a shorthand for the command "SET PROT=(S:RWED,O:RWED)", whichis easily forgotten.ww *1 UPLSet your directory to the parent of the current default. This is a shorthandcommand for "SET DEFAULT [-]".wwD1 USE*RS/MShort way to display users on the system. This will do a /FULL display on VMSVersion 5 systems.ww@1 VDLEVerify and delete a file. This is the same thing as the "DELETE/CONF"Mcommand. It is consistent with a command that is available on MS-DOS systems,that Don Amby uses a lot.ww@1 VMS;Displays the current version number of VMS that is running.wwQ1 W132"Set terminal width to 132 columns.ww 1 W80!Set terminal width to 80 columns.ww`l 1 WELCOMEFDisplays the system welcome message, by making use of the logical name SYS$WELCOME.ww1 was entered. If none was specified (ory5 if it was "*") then display a complete list.t 2 GETSYI.COM*IJSimple interface for running the F$GETSYI() lexical function. You must use,the AMBYUTILS command to define this utility $ GETSYI [item [node]]GFor information on the items that can be used with the F$GETSYI lexicale@function, see the HELP LEXICAL F$GETSYI topic or the VAX/VMS DCL Dictionary.p 3 ProcessingG 1. Check to see if an item was entered. If none was 2specified (or5 if it was "*") then display a complete list. 2 INTERNET.COM*tESends a test mail message to anyone on the Internet. The message willd2include the address that you used to send to them. INTERNET addressIThe "address" is the actual Internet format address (name@name.name) thatis published for a person. 3 LogicalsGThe following are the tool-specific and user-general logical names that are used by this tool.; INTERNET_DEBUG "TRUE" run 3s this in DEBUG mode. B INTERNET_VERIFY "TRUE" runs this with verification on.F USER$SCRATCH Directory for all temporary files created.D INTERNET$ADDRESS Return address for INTERNET to reply to.E INTERNET$GATEWAY VAX/VMS MAIL gateway to route to Internet 7 ARCHIVE-SERVER Address to send message to.t 3 Processing a. Initialization[F 1. Define all of the local symbols, that will essentially beG used as const:ants, variables, and DCL commands within thisE procedure. C 2. Get the values of the logical names INTERNET_DEBUG andv@ INTERNET_VERIFY into local symbols for later usage.H 3. Define local symbols that represent temporary files used byH this tool. They are to be created (and deleted before EXIT): in the user scratch directory (USER$SCRATCH). * mail_file b. Main ProcessingB 1. Define qܜZ+1 Table_of_ContentssIThe following is a listing of the topical structure of this help library,Y&which was created by the HLBTREE tool.AMBYAMBYLIBS. Tools. Files . Processing[ AMBYUTILS . Logicalsf . Symbols Amby_Setup . LOGIN.COM. . Processing. . Subroutines . . . site_setup . SETKEYS.COM. . Parameters. . Processing . . Keys. . . Default. . . Gold1. . . Gold2. SETLOGS.COM. . Parameters. . Processing. SIL+ 1 Help_ambyCIThis collection of tools represents Version V1.1-6 of Don Amby's personalbEtoolkit that is defined at login time by running the SETUP.COM in hisoSYS$LOGIN directory.ww AMBYUTILSi . Logicals . Symbols Amby_Setup . LOGIN.COM. . Processing. . Subroutines). . . site_setup . SETKEYS.COM. . Parameters. . Processing . . Keys. . . Default. . . Gold1. . . Gold2. SETLOGS.COM. . Parameters. . Processing. S>cIL+ 1 Amby_SetupHThere are some DCL command procedures that are used to perform the setupGnecessary for these tools in the AMBY_ROOT:[000000] directory (which isN-really the SYS$LOGIN directory for Don Amby).V 2 LOGIN.COM@Main login file that is run from Don Amby's normal user account. 3 ProcessingF 1. Use the logical name DCL_TRACE to determine whether or not toI output a message with the filename and parameters. This is to be.H able to get an execPX+ 1 DCLCHANGESLThis tool can be used to help you determine what the effect of running a DCLGcommand is. This will document what logical names were changed and what!global symbols have been defined.o< $ DCLCHANGES "dcl-command" file-name [diff-quals] 2 Parameters a. dcl-commandJ This can be any valid DCL command, and is best enclosed in double quotes. b. file-nameK The filename of output files (file-name.*). If you ?`mU+1 Table_of_ContentscIThe following is a listing of the topical structure of this help library,&which was created by the HLBTREE tool.AMBYAMBYLIBS. Tools. Files . Processingl AMBYUTILS . Logicals . Symbols Amby_Setup . LOGIN.COM. . Processing. . SubroutinesU. . . site_setupp. SETKEYS.COM. . Parameters. . Processing . . Keys. . . Default. . . Gold1. . . Gold2. SETLOGS.COM. . Parameters. . Processing. SNBY Table_of_ContentsUӍ1+ AMBY AuthorSYS$LOGIN_directory Background Setting_Up Directories% [2+ AMBY Date_Updated*Xh2+ AMBY Table_of_Contents%hc 4+ AMBY Date_Updated*`$4+ AMBY Table_of_Contents-@JJL+ AMBY Help_amby Amby_SetupU`[L+ AMBY AuthorSYS$LOGIN_directory Background Setting_Up Directories"dL+ AMBY Utilities(`DL+ AMBY SIG_TAPE_U;the CONTROL/Y, and error conditional handling.H 2. Check to see if the logical name USER$SCRATCH is undefined,: and if so define it be the same as SYS$LOGIN.I 3. Check the values from the various logicals, and define localf+ symbols to appropriate values.s c. Error Processings0 * No INTERNET$GATEWAY logical defined6 * No address give to send Internet mail to.7 * Handle ERROR condition, then go to return<.r> * Handle SEVERE error condition, then go to return.; * Handle CONTROL_Y condition, then go to return.mF * Handle abnormal end of file on READ condition, then go to return.< * Handle READ ERROR condition, then go to return. d. Return ProcessingF Close any files that were opened (via OPEN), delete temporary? files, restore verification, and EXIT with the currentsI 'ret_status' value, (.or. with ='ret_mask' to disable VMS messageo display). 2 JULIAN.COMEGiven a date, return the day portion of the julian date (day of year)e Input parameter:i8 P1 date; defaults to today Output parameter:; JUL_DAYS global symbol; day of yeary 2 LOGREPS.COMrHQuick and dirty shell that can be used to generate usage reports for theHvarious toolkits that make use of the LOGTOOL utility for usage logging.M $ LOG|REPS report-type data-file begin-date end-date report-suffixi Defaults: report-type "TOTAL"4 data-file "SITE_SPECIFIC:LOGTOOL.DAT" begin-date "TODAY" end-date "NOW"% report-suffix "-USAGE.RPT"Y3 Files EThe data-file that is used as input to this is assumed to contain theLHfollowing 2 fields of data (on each line) with each item terminated by aCsemicolon ";". The semicolon acts as a field terminator within each reution trace by the use of the command DEFINE DCL_TRACE TRUE.H 2. Check what the current mode this is being run in, and branch to that section of logic.m - BATCHG (1) Set values for AMBY_LOGIN, AMBY_LOGIN to be YES, BATCHrI to be true, and call the SITE_SETUP internal subroutine. - NETWORKA (1) Set values for AMBY_LOGIN, AMBY_LOGIN to be YES,eE NETWORK to be true, and call the SITE@ETSYMBS.COMs. . Logicals. . Processing . SETUP.COM. . Parameters. . Files Used. . ProcessingASERVER . LogicalsP . ProcessingRAuthor BackgroundBROADt BUILD_PROD . ProcessingbBYEnCDCLSaCVTIMEDAILY . ParametersP . Logicals . ProcessingW DAILY_HILITESM Date_UpdatedDCL . ExamplesR DCLCHANGES . Parameters . Outputs . InputsI . Examples . ProcessingC. . Initialization . . Main. . Handlers . . Exit . AuthorE DCLSHRINKrA . Processingf . ReferenceDEDEL*ETDIDCMS . ParametersR . Processing . ExamplesDIRt DirectoriesQDIRSDISKUSEt . Parameters_ . ReferenceDOCCMS . Parameterso . Processing . Subroutines . ExamplesSDTR*32EDT EMPA . Parameters. . Reference . Warning ENVIRONMENTY . Example . AuthorsEVERYLIB. Tools. Files . Processingr EVERYLIB_INFOlFILES.FILE_ATTRIBUTES . Parametersg . Reference . ProcessingUGETDVI . ProcessingEGETJPI . ParBameters . Reference . ProcessingEGETSYI . ProcessingHGROUPa Help_ambyA HIGHLIGHTS . DatatrieverHLBQUALS . Parameters. . hlp_topico. . out_file . . hlb_libs . Tools_Usedc . Logicalse. . HLBQUALS_DEBUG. . HLBQUALS_VERIFY . . AMBY_MODEa. . USER$EDIT. . SYS$SCRATCHL . Examplese . AuthorLHLP INSTALL_EDT . parametersA . . in_fileT . . kit_dirs. . out_file . Logicals . . INSTALL_EDT_DEBUGE. . INSTALL_EDT_VERIFY. . PRODC_NAMEN. . AMBY_MODEs. . USER$EDIT. . USER$SCRATCH . ExamplesD . AuthorT INSTALL_PROD . Parameterss. . prod_top. . prod_objectP. . install_parmsT . Tools Used . Logicals . ProcessingLINTERNET . Logicals. . ProcessingeLOGICALS . ExamplesLOGREPSP. FilesMAILMAILCMDe . ProcessingEMAILFILE MAILSEARCH . Processing MAIL_FOLDERS. Tools . Processing.MARKREPS. FilesMEMmMKE_DO . Symbols . Examples.MONTHLY_HILITES MSG_OFFtDMSG_ONMVNONOBROAD*PARENTPARSE . ProcessingrPRINT.PROD PRODSTATUS. Tools . ProcessingmProducts . Setupse . . AMBY. . . Parametersr. . . ToolkitsP. . . ProcessingT. . BASETOOLSP. . . ParametersP. . . ProcessingT . . CMTOOLSP. . . ParametersT. . . Processingo. . DECUSTOOLS. . . ParametersF. . . Toolkitsi. . . Processings. . DC_RSLIB. . . ParametersE. . . Processingn. . DOCTOOLS. . . ParameterEs . . . ProcessingO . . EDIT. . . Parameters. . . Processing . . SBO . . . Parameterse. . . ProcessingE . . RSLIBS. . . Parameters. . . Processing . . TESTTOOLSo. . . Parameters. . . ProcessingD. . TEXTOOLS. . . ParametersU. . . ToolkitsP. . . ProcessingPROJPROJLIBS. Tools. Files . ProcessingI PROJSTATUS. Tools . ProcessingmPROTPRT_NOTE . Examplesa . ProcessingIPUBLICPUR*RGPWDREALDIRC F. ProcessingSREMDISKT . Parameterss. . log_name. . rem_node. . rem_disk . Tools Useds . ProcessingtREMDO REMOVESBO_DO . Symbols . ExamplesTSETKITSPSETROOT_ . Examples . Processingr Setting_UpSH*OWlSIG_TAPE_BUILD. Tools . ProcessingoSIG_TAPE_UPDATEc . Logicals . Tools. Files . ProcessingO. Subroutines . . updateSPELLINGSQAtSQAFSQF STDIOT . Parameters SUBaSYMBOLS . Examples SYS$LOGIN_directory.T*YPE Table_of_ConOtents TEXLISMMS. Tools . ProcessingxTIMER . UtilitiesTOOLCMSa . Parameters . Processing.. Subroutines . ExamplessTOOLKITS . Parameters . Tools . Processingr . AuthorITOOLMOVE . ParametersR. . tool_group. . out_file. . cms_library.. . cms_classG. Tools . Logicalss . Processing.TOPTOPBIOTOPCPUUNPROTUPUSE*RSUSELESSc UtilitiesG. CONTEXT_SET.COM. . Logicals . . Files . . Processing. CVTIME.COM*. DIDCMS.COM*H;L+1 SIG_TAPE_UPDATE MThis can be used to update everything that is to be placed on the saveset forAIthe DECUS Languages & Tools SIG tape. This is mainly intended as a way toaHensure that everything that needs to be built is up to date in all of mysoftware products (Don Amby)$ $ @AMBY_EXE:SIG_TAPE_UPDATE 2 Logicals2The following logical names are used by this tool.2 ToolsoHThe following is a list of some non-standard tools that are used in this procedure.I4 * SET_PROJ - To set the current ISEE project.4 * SET_PROD - To set the current ISEE product.4 * TOOLKITS - to set up all standard toolkits.A * WRK - To set default directory for working on product.E2 Filese)The following files are used by this toolU * SIG_TAPE_UPDATE.SETKITSJ This is a list of toolkit directories that are to be used by thisK procedure. This also defines where the tools that are built are to  be 'insJtalled'. 2 ProcessingJ 1. Set the current project to be the PERSONAL project, which is what@ I (Don Amby) use to update everything for the SIG tape.I 2. Set up every toolkit that needs to be defined prior to doing anyt updating.K 3. Now, I need to set up each product that I am releasing to the tape H and rebuild it by running the SIG_TAPE.COM file that is in eachG work directory. Since this is a bit much to do, we just use anoH i Knternal subroutine and CALL it to do the work for each product listed. a. COMMONL b. AMBYE c. BASETOOLS d. CMTOOLS e. DECUSTOOLS- f. DOCTOOLS  g. EDITo h. LT_SIG- i. NOTES j. RSLIB k. SITE l. TESTTOOLS m. TEXTOOLS I 4. Okay, now that everything has been built, then set up all of it, 5 by running the SETUP.LCOM in AMBY_ROOT:[RUN].IJ 5. Set up every toolkit that was defined at the beginning of this in8 order to document what are the latest versions. 2 Subroutineso?The following are internal subroutines that are CALLed in this. 3 updateF 1. Check to see if the product name was passed. If not just exit with error status.$G 2. Output a message to indicate what product is to be updated andD set up that product. Then use the WRK tool to establish theM+ default directory to do update in.aB 3. Run the setup command, defined as local symbol 'set_cmd'.G 4. If there was a command procedure file name supplied, then justoA run it, otherwise we need to check for how to update thed product.e: - Update by just running with SIG_TAPE.COM fileI - we can build it using BUILD.COM and install via INSTALL.COM.h* - build this by using BUILD.COM. - INSTALL this by using INSTALL.COMG - We can update this product using the ALL.COM in the commonC area defined as part of default directory search list..wwery quick and dirty DCL tool to generate a list of all that you can knowiIabout the current VMS system, writing the results into the NODE_SPECIFIC:J directory. $ ENVIRONMENT 3 Example  $ ENVIRONMENTA $ show license/brief /out=NODE_SPECIFIC:SHOW-LICENSE.LOG 9 $ show memory /out=NODE_SPECIFIC:SHOW-MPDATE% L+ AMBY Date_Updated*L+ AMBY Table_of_Contents% U+ AMBY Date_Updated*@_U+ AMBY Table_of_Contents;`9X+ AMBY DCLCHANGESHLBQUALSSIG_TAPE_BUILD% 6Z+ AMBY Date_Updated*Z+ AMBY Table_of_Contentsi. . Parameters. . Processing. . Examples. DOCCMS.COM*. . Parameters. . Processing. . Subroutinesh. . Examples. ENVIRONMENT.COM*s . . Exampled . . Author. EVERYLIB_INFO.COM*E. FILE_ATTRIBUTES.COM* . . Parameters. . Reference.. . Processing. GETDVI.COM*. . Processing. GETJPI.COM*. . Parameters. . Referencee. . Processing. GETSYI.COM*. . Processing. INTERNET.COM*. . Logicals. . Processing . JULIAN.COMr. LQomit this, then A the default is DCLCHANGES, resulting in the output files.& DCLCHANGES.* being generated. c. diff-qualseJ This allows you to specify qualifiers to DIFFERENCE command, thatE is used to document the changes. If omitted, then by defaultI) /PARALLEL and /MATCH=1 are used.C 2 OutputsPHThis tool generates three output files, whose filenames are given by thesecond parameter (file-name).aH * file-name.LIS - logs what hapRpens when command is actually run.= * file-name.LOGICALS - lists changes in logical names.I= * file-name.SYMBOLS - lists changes in global symbols.O2 InputsKThe following files are referenced by this. They must exist in order for itPto work. * DCL.COMK This is used to run a DCL command, and direct the output to a filePK (@DCL/OUT command). Is is used by this because there is no /OUTPUTrK qualifier to the SHOW SYMBOL command (like the SHSOW LOGICAL). ThisrG MUST be in the same directory that this procedure is found in.H 2 ExamplesISuppose that you have designed a command procedure that will set up a setiEof tools (SETUP.COM). The following will help you to document what itV<define, and write the results into the default output files. $ DCLCHANGES "@SETUP"=The following can be used to document what effect the command.@"@SYS$LOGIN:LOGIN" has, and have the output written to the files/MYLOGIN.LIS, MYLOGINT.LOGICALS, MYLOGIN.SYMBOLS. 1 $ DCLCHANGES "@SYS$LOGIN:LOGIN" MYLOGINABThe following does the same as the previous command, but specifies1different qualifiers for the DIFFERENCES command.lE $ DCLCHANGES "@SYS$LOGIN:LOGIN" MYLOGIN /SEPARATED/MATCH=1E 2 ProcessingIThis is accomplished by doing Initialization, then Main processing. ThereeKare Handlers defined for interrupt and error handling, and the Exit code is_+run prior to exiting from this application.e3 Initiali UzationG a. Save parameters in local symbols that are easier to reference.SG b. Block the use of dangerous "external" personal commands. ThesemB are so that any personal commands defined outside of thisI procedure are effectively hidden and will not interfere with thet application.nF c. Save the current message and privilege settings, etc. so that) they may be restored at the end.t= d. Define some simple status codes for the applicati Yon.I e. Establish the interrupt and error handlers. Make sure the statusH indicates success if we exit normally. Up to this point, errorsG and interrupts will cancel the procedure harmlessly. From thistI point on, they will cause the appropriate handler to be invoked.TI f. Establish the message and privilege environment. The settings ofs= DCL environment items are altered as required by theE application.aI g. Set up some useful syW`X 1 ENVIRONMENTIVery quick and dirty DCL tool to generate a list of all that you can knowIabout the current VMS system, writing the results into the NODE_SPECIFIC:o directory. $ ENVIRONMENT 2 Example  $ ENVIRONMENTA $ show license/brief /out=NODE_SPECIFIC:SHOW-LICENSE.LOGe9 $ show memory /out=NODE_SPECIFIC:SHOW-MEMORY.LOGiC $ show working_set /out=NODE_SPECIFIC:SHOW-WORKING_SET.LOG> $ @amby_exe:getsyi /out=NODE_SPECIFgIC:SHOW-GETSYI.LOGG $ dcl/out=NODE_SPECIFIC:SHOW-symbol.log show symbol/all/globalK $ show logical/process /out=NODE_SPECIFIC:SHOW-LOGICAL-PROCESS.LOG J $ show logical/system /out=NODE_SPECIFIC:SHOW-LOGICAL-SYSTEM.LOG? $ show process/all /out=NODE_SPECIFIC:SHOW-PROCESS.LOGUP $ library/full/list=NODE_SPECIFIC:SHOW-helplib.log sys$help:helplib.hlb8 $ verb * /list /out=NODE_SPECIFIC:SHOW-VERB.LOGH $ show queue/full/batch /out=NODE_SPECIFIC:ܕZ+1 Date_Updated>This help library was last updated on 6-DEC-1991 13:45:57.72,&by username AMBY on the CSD630 system.wwape_saveset backup_quals in_quals out_qualsWhere:9 * tape_saveset Tape (logical) and saveset name. ; * backup_quals optional backup command qualifiersa< * in_quals optional input file spec qualifiers= * out_quals optional output file spec qualifiersX2 ToolsrHThe following is a list of some non-stdmbols for the application. Various symbolic I constants, personal commands, and other useful local symbols are  define., h. Supply defaults for some parameters3 MainGThis is where the actual application begins, and the real work is done.PI a. Before going any further, make sure that the DCL.COM file existsoG in the same directory that this command procedure is found. ItrE is used so that the output of the SHOW SYMBOL command can bea$ 9 Table_of_Contents!( AMBY Products% %j( AMBY Date_Updated*u( AMBY Table_of_Contents" j'+ AMBY Utilities'#(+ AMBY SIG_TAPE_BUILD(4(+ AMBY SIG_TAPE_UPDATE%sI(+ AMBY Date_Updated*wU(+ AMBY Table_of_ContentsUL~/+ AMBY AuthorSYS$LOGIN_directory Background Setting_Up Directories%`BC$0+ AMBY Date_Updated*=0+ AM\( 1 ProductsMThis project is organized into a collection of PRODUCTs that can be set usingiKthe base ISEE tools. Each product has an associated DEC/CMS library, and is_Kdefined to be the current one when the product is defined with the SET_PRODccommand.= $ SET_PROD AMBY ! to set up access to AMBY productC2 SetupsKEach product has a SETUP.COM file that is run as part of the SET_PROD tool,a7that can be found in the respective PROD_TOP directory.o3 AMBYAPe]rforms the overall setup for working on the AMBY product of therPERSONAL project for Don Amby. 4 ParametersNone are used. 4 Toolkits5 TEXTOOLS Tex/LaTeX typesetting tools.e 4 ProcessingF a. Use the logical name DCL_TRACE to determine whether or not toF output a message with the filename and parameters. This is toD be able to get an execution trace by the use of the command DEFINE DCL_TRACE TRUE.eF b. Set up other tools that are neede^d for this product, based on/ whether specific logicals are defined.a 1. TEXTOOLSt7 Only if TEX symbol is not already defined.uC c. Define all AMBY_* logical names so as to reference objectsG2 that are in the PROD_DEV:[WRK] directory. * amby_data * amby_exeo * amby_help * amby_mail * amby_data * amby_exe  * amby_help * amby_hlb  _ * amby_logY * amby_mode * amby_rootE d. See if the PROD_DEV:[WRK]SETSYMBS.COM file can be found, andd@ then run it, in order to be sure to have any new symbol definitions. : e. Restore the original default directory, and exit. 3 BASETOOLSAPerforms the overall setup for working on the BASE product of theFFPERSONAL project of Don Amby. This is to provide a way to define tools"that only this product might need. 4 Parameters `None are used. 4 ProcessingF a. Use the logical name DCL_TRACE to determine whether or not toF output a message with the filename and parameters. This is toD be able to get an execution trace by the use of the command DEFINE DCL_TRACE TRUE.L? b. See if there is a test version of the BASETOOLS in the G directory defined by the symbol 'test_dir'. If so set it up soLE that we do not accidentally update the released version with  a work in progress.F c. Define some of the BASETOOLS logical names so as to reference: objects that are in the PROD_DEV:[WRK] directory. * base$exe. * base$help * amby_data * amby_exet * amby_help * amby_hlbo * amby_logn * amby_mode * amby_rootE d. See if the PROD_DEV:[WRK]SETSYMBS.COM file can be found, andP@ then run it, in order to be sure bto have any new symbol definitions.. 3 CMTOOLS DPerforms the overall setup for working on the CMTOOLS product of theHPERSONAL project. This will define the toolkit logical names so that theHworking versions of files in the PROD_DEV:[WRK] directory are referenced!instead of the released versions.b 4 ParametersNone are used. 4 ProcessingF a. Use the logical name DCL_TRACE to determine whether or not toF output a message with the filename and parameters. This is ctoD be able to get an execution trace by the use of the command DEFINE DCL_TRACE TRUE.SG b. See if there is a test version of the CMTOOLS in the directorytE defined by the symbol 'test_dir'. If so set it up so that welE do not accidentally update the released version with work inR progress.D c. Define all CMTOOLS toolkit names so as to reference objects2 that are in the PROD_DEV:[WRK] directory. * cm_exes  * cm_data * cm_help * cm_hlbg * amby_data * amby_exeT * amby_help * amby_hlbN * amby_logT * amby_mode * amby_rootE d. See if the PROD_DEV:[WRK]SETSYMBS.COM file can be found, ande@ then run it, in order to be sure to have any new symbol definitions.*: e. Restore the original default directory, and exit. 3 DECUSTOOLSHPerforms the ovee directed to an output file.A b. If there was a command input, then we want to run it andPI generate output difference listings for logicals and symbols. IfsH not, then all we want to do is generate initial versions of the log files. H c. Check to see if a command was specified as the first parameter.2 If not, output an error message end exit.E d. If there was a command entered, then proceed to document itsg effect.A 1. f Generate listing of current logical names and global  symbols.aA 2. Run the command that was entered as first parameter,RF restoring directory so we get back to where listing files- are that were generated earlier.eG 3. Generate listings of logical names and global symbols into*G temp files, and add headings to them documenting the time, 3 default directory, command, and so on..E 4. Generate differengce listings of the logicals and symbolsOA from the ones generated already. This then serves tos: document the effect from running the command. 3 HandlersG a. The interrupt handler sets the summary status to indicate thatsE was pressed and then joins the cleanup (Exit) code. E b. The error handler sets the summary status to the "offending" 8 status then also joins the cleanup (Exit) code.3 ExitFThe exit routine first perfohrms cleanup. Then it restores the original:DCL environment. Finally it exits with the summary status.2 Author Donald E. Ambyi& Harnischfeger Engineers, Inc.; P.O. Box 1512 or 13400 Bishops Lane = Milwaukee, WI 53201 Brookfield, WI 53005o) 414-797-6713, 414-797-6533 (FAX)O DECUServe,DCS: AMBY # CompuServe: 73547,3256 7 Internet: don@amby.mixcom.com (home) <  amby@eisner.decus.org (DECUServe)7 UUCP: uunet!mixcom!amby!don (home)e@ {decwrl,nosc,crash}!simpact!eisner!ambyww. . . initialize . . . . Parameters. . . . Symbols . YRSEC.COM. . Utilities VDL VMSLW132W80 WELCOMEyWRK . Parameters . Logicals . Examplesi . Processingcww used to generate usage reports for theHvarious toolkits that make use of the LOGTOOL utility for usage logging.M $ LOGjOGREPS.COM . . Files-. MARKREPS.COM* . . Filest. NEWNOTES.COMl. . Processing. . Examples. . Referenced . PARSE.COM*". . Processing. PROD_SET.COM . . Logicals . . Files . . Processing. PROJ_SET.COM . . Logicals . . Files.. . Processing. SECONDSTIME.COM. . Examples. . Processing. SET_PROC_NAME.COM. . Logicals. . Processing. SIG_TAPE_UPDATE.COM* . . Logicals . . Toolsc . . Filesa. . Processing. . Subroutiknesd. . . update . STDIO.COM*r. . Parameters . TIMER.COM*L. . Utilitiess. TOOLCMS.COM*[. . Parameters. . Processing. . Subroutines . . Examples. TOOLMOVE.COM*. . Parameters. . . tool_groupo. . . out_filee. . . cms_library. . . cms_class . . Tools . . Logicals. . Processing. TOOLSLIB.COMd. . Examples. . Reference. . Subroutinesy . . . ask. . . . Parameters. . . . Result. . . signal . . . . Parameters. . . . Status. . . lookup_keyword . . . . Parameters. . . . Result. . . setroot. . . . Parameters. . . . Processing. . . initializel. . . . Parameters. . . . Symbolsi . YRSEC.COM. . UtilitiessVDLlVMStW132W80dWELCOMEoWRKh . Parametersd . Logicals . Examplesp . ProcessinghwwASE)PD b. MARKTOOL log file (such as ISEE$ROOT:[BASE.DATA]USAGE.DAT).2 NEWNOTES.COMFThis tool updates all VAX NOTES m8X+ 1 HLBQUALSIThis tool was put together in a attempt to provide some convenient way to Lhelp document what qualifiers are defined for what tools. This will generateKan output file that lists the qualifiers for a particular help topic from ah help library.o5 $ HLBQUALS hlp_topic [out_file [hlb_lib]]fJOptional parameters are indicated by square brackets [optional-parm]. Null5parameters on the command line are indicated by a "".L 2 ParametersJThe following nare the parameters that can be included on the command line,!in the order of their appearance. 3 hlp_topic Help topic for qualifiers.=F out_file Output file. If omitted, the default is used.G hlb_lib Help library (defualt is system help library).G 3 hlp_topiceFThis is the help topic for which you wish to generate a listing of the=qualifiers. This must exist in the help library that you use.- 3 out_fileAThis is the name of the output file. If oomitted, then the name ishHdetermined from the 'hlp_topic'. The 'hlp_topic' is the filename and thefiletype is ".QUALIFIERS".IFor example, if the hlp_topic is MACRO, then the default output file will1be MACRO.QUALIFIERS. 3 hlb_libtGThis is the name of the help library that you will find the 'hlp_topic' Iin. If you omit this, then the default is to use the system help library.s 2 Tools_Used.The following tools are used within this tool.H GREP This is a Unix-like search topol, that is very powerful. 2 LogicalsIThere are several logical names that you may use to specify user specificafeatures to this tool.3 HLBQUALS_DEBUGGIf defined to be "TRUE" the tool runs in DEBUG mode. This can be usefuluGduring testing, as it causes additional output to let you know what theetool is 'really' doing.h%If undefined, the default is "FALSE".r% $ DEFINE HLBQUALS_DEBUG TRUEu3 HLBQUALS_VERIFYbGIf defined to be "TRUE" verification is turned on within the tootl. This.Hdoes require that you have READ access to the DCL procedure for the tool(if there is one).- $ DEFINE HLBQUALS_VERIFY TRUE$ 3 TOOLS$MODEEThis is used to allow you to tailor the user interface, by giving theiFminimal amount of information when prompting you for parameters, etc.,when it is defined as "EXPERT".M"If undefined, "NOVICE" is assumed.' $ DEFINE TOOLS$MODE EXPERTe 3 USER$EDIT,IThis defines a DCL command string that is used for any user 'rETSYMBS.COMs. . Logicals. . Processing . SETUP.COM. . Parameters. . Files Used. . ProcessingASERVERr . Logicals . ProcessinguAuthor BackgroundBROADc BUILD_PROD . Processing BYE CDCLS CVTIMEDAILYi . Parametersf . Logicalsl . Processing DAILY_HILITESb Date_UpdatedDCL . Examples DCLCHANGES . Parameterso . Outputs . Inputse . ExamplesS . Processingo. . Initialization . . Main. . Handlers . . Exit . Authorb DCLSHRINKe*y . Processing . ReferenceDEDEL*ETDIDCMS . ParametersU . Processingf . ExamplestDIRt DirectorieseDIRSDISKUSEt . Parametersr . ReferenceDOCCMS . Parametersh . Processingo. Subroutines . Examples DTR*32EDTlEMPe . Parameterst . Reference . Warning ENVIRONMENTa . Example . AuthoreEVERYLIB. Tools. Files . Processingp EVERYLIB_INFOiFILESrFILE_ATTRIBUTESc . Parameterse . Reference . ProcessingnGETDVI . ProcessingCGETJPI . Part * PROJ_LOCAL 3 Files>The following files are referenced and used by this procedure.1 * SET_PROC_NAME.COM - to set process name.@ * AMBY_TOP:SETLOGS.COM - defines D. Amby's logical names.B * AMBY_TOP:SETSYMBS.COM - defines D. Amby's global symbols. 3 ProcessingF 1. Use the logical name DCL_TRACE to determine whether or not toI output a message with the filename and parameters. This is to beH able to get an execution trace uedit commands3Hwithin the tool. This allows you to specify what editor you want to use,2when the tool invokes a text editor interactivele.)If undefined, then "EDIT/EDT" is assumed.s8 $ DEFINE USER$EDIT LSEDIT ! to use LSEDIT 3 SYS$SCRATCHaBThis logical name is used to point to where temporary files can be?created. It is defined at login time to point to your SYS$LOGINhHdirectory, but you can redefined it to point to any other directory that you wish.s 2 Examples8The fovllowing are some examples of how to use this tool.G * Generate a listing of qualifiers for the MACRO topic, from theTG system help library, and have the output in the default outputa! file (MACRO.QUALIFIERS).t! $ HLBQUALS MACRO J * As previous example, but this time have the output written to the file MACRO.LST.+ $ HLBQUALS MACRO MACRO.LSTe2 Author Donald E. Amby & Harnischfeger Engineers, In c.; P.O. Box 1512 or 13400 Bishops Lane = Milwaukee, WI 53201 Brookfield, WI 53005s) 414-797-6713, 414-797-6533 (FAX)  DECUServe,DCS: AMBYn# CompuServe: 73547,3256I7 Internet: don@amby.mixcom.com (home)c< amby@eisner.decus.org (DECUServe)7 UUCP: uunet!mixcom!amby!don (home) @ {decwrl,nosc,crash}!simpact!eisner!ambyww ixandard tools that are used in this procedure.B * DISK_REPORT from DECUS tape to provide a disk report. 2 ProcessingC 1. Set default to Don Amby's login directory before we start.tG 2. Build up a symbol that will contain the file spec of all files" that are to be submitted.F 3. Generate a total directory listing to a temp file and use the3 DISK_REPORT tool to write a summary repot. B 4. Using the symbol with what is to be backed up, ge nerate a) directory listing of everything.oK 5. Using the list of files to write to tape, issue the BACKUP commandwI under the assumption that the use already has the tape allocatedlC and mounted. Not a generally safe assumption, but for this , application it is a reasonable one.ww not just exit with error status.G 2. Output a message to indicate what product is to be updated and$D set up that product. Then use the WRK tool to!zametersi . Reference . ProcessingcGETSYI . ProcessingGROUP3 Help_amby HIGHLIGHTS . DatatrieveeHLBQUALS . ParametersE. . hlp_topic,. . out_file . . hlb_lib . Tools_Usedh . Logicalsp. . HLBQUALS_DEBUG. . HLBQUALS_VERIFYn. . TOOLS$MODE. . USER$EDIT . . SYS$SCRATCHt . ExamplesC . AuthoraHLPa INSTALL_EDTi . parameters . . in_fileu . . kit_dir. . out_file . Logicalsy. . INSTALL_EDT_DEBUG . . INSTALL_EDT_VERIFY. . PROD'{_NAMEh. . AMBY_MODEc. . USER$EDIT . . USER$SCRATCH . Examplest . Authors INSTALL_PROD . Parameters$. . prod_top. . prod_objecta. . install_parmsl . Tools UsedR . Logicalso . ProcessingiINTERNET . Logicals . ProcessingLOGICALS . ExamplesfLOGREPSl. FilesMAILMAILCMDi . Processing MAILFILE MAILSEARCH . Processingt MAIL_FOLDERS. Tools . ProcessingMARKREPS. FilesMEMiMKE_DO . Symbols . ExamplesFMONTHLY_HILITESeMSG_OFFc!MSG_ONMVNONOBROADaPARENTPARSEO . ProcessingaPRINTWPROD PRODSTATUS. Tools . ProcessingsProducts . Setups . . AMBY. . . Parameters . . . Toolkits.. . . Processinge. . BASETOOLSi. . . Parameters. . . Processing . . CMTOOLSr. . . ParametersI. . . Processings. . DECUSTOOLS. . . ParametersM. . . Toolkits . . . ProcessingG. . DC_RSLIB. . . Parameters . . . Processinge. . DOCTOOLS. . . Parameter}cord (or line).+% a. Report prefix (such as BASE)C b. LOGTOOL log file (such as ISEE$ROOT:[BASE.DATA]USAGE.DAT). 2 MARKREPS.COM*sHQuick and dirty shell that can be used to generate usage reports for theIvarious toolkits that make use of the MARKTOOL utility for usage logging.BN $ MARKREPS report-type data-file begin-date end-date report-suffix Defaults:e report-type "TOTAL"5 data-file "SITE_SPECIFIC:MARKTOOL.DAT"u begin~-date "TODAY" end-date "NOW"% report-suffix "-USAGE.RPT"a3 FilesIEThe data-file that is used as input to this is assumed to contain the Hfollowing 2 fields of data (on each line) with each item terminated by aCsemicolon ";". The semicolon acts as a field terminator within eachprecord (or line).R% a. Report prefix (such as BASE)D b. MARKTOOL log file (such as ISEE$ROOT:[BASE.DATA]USAGE.DAT).2 NEWNOTES.COMFThis tool updates all VAX NOTES conferences in the user's notebook and=sends a list of conferences that have new notes via VAX MAIL.t $ @AMBY_EXE:NEWNOTESfEThis is based on a tool originally published on the DECUServe system.g 3 Processing 3 ExamplesHYou can just invoke this at the DCL command prompt, or the better way isGto SPAWN it as part of your LOGIN.COM. Then it will MAIL you a messsage 'if there are new notes for you to read.2 $ SPAWN/INPUT=NL:/NOWAIT/OUT=NL: NEWNOTES 3 Reference IThis_SETUP internalf subroutine. - INTERACTIVEE (1) Set values for AMBY_LOGIN, AMBY_LOGIN to be YES, andoG then allow the user to interactively determine what is ' to be actually set up. B (2) See if the user wants the AMBY_TOOLS definitions.D (3) If VAX Notes is running on this system (by the fileH SYS$SYSTEM:NOTES$MAIN.EXE existing) check to see if theE user wishes to check for new notes. The response (if.B interactive) is used to set a flag for later use. - OTHERA 3. Based on the selected *.SETKITS file to be used, run theo@ AMBY_EXE:SETKITS.COM file with that data file as input.G 4. If are to run Amby setups (AMBY_LOGIN is true), then run stuffE3 to define Don Amby's personal environment.e a. run SETUP.COM. b. run AMBY_ROOT:[RUN.EDIT]SETUP.COMH c. If the user wants to (or we are running in batch), check toE see if VAX Notes is installed (SYS$SYSTEM:NOTES$MAIN.EXEG file exists). If it is installed, then update the notebookT2 and send mail to person running this.D d. Use the HELPLIBS tool to define all of the help library= logical names (HLP$LIBRARY, HLP$LIBRARY_1, ...)..I 5. Return to the directory where you originally were before you ran  this.B 6. If the logical name SITE_DATA_DIR exists, then delete it.I 7. Display the current diskquota for the user running this, for thes current device.' 8. enable CONTROL/Y and CONTROL/T 3 Subroutines HThe following are local subroutines (Version V5.0 and later format) that4encapsulate logic that is inconvenient to replicate. 4 site_setupD1. Define the global symbol SETROOT to reference SETROOT.COM in theG[.EXE] directory below the one this file is in, as it is needed as partP7of this procedure (and other procedures that it calls)..F2. Check to see if the file SETLOG.COM exists, and if it does run it,+since we need the logicals that it defines.F3. Establish the logical name (SITE_DATA_DIR) to reference the properAdirectory the where the *.SETKITS data files are located. This issFdependent on the logical name SITE_SPECIFIC that is defined as part ofthe SETLOGS.COM procedure. 2 SETKEYS.COM0Sets up the DCL key definitions used by D. Amby. 3 Parameters5p1,..p8 can be qualifiers for the DEFINE/KEY command.U 3 ProcessingF 1. Use the logical name DCL_TRACE to determine whether or not toI output a message with the filename and parameters. This is to bemH able to get an execution trace by the use of the command DEFINE DCL_TRACE TRUE.< 2. Output a message on how to get help using the keys.C 3. DELETE all key definitions if user supplied a qualifier of  /DEL[ETE].T( 4. Define the keys, and then exit.3 KeysEDefine all of the keys for the various states (DEFAULT, GOLD1, GOLD2,getc.) 4 DefaulteFDefine all of the DEFAULT state key definitions (next state is GOLD1).. pf1 change state to GOLD17 pf2 display keys for DEFAULT stateV& pf3 no definition& pf4 no definition kp7 proj kp8 prodO% kp9 show default + minus set term /width=80 - kp4 monitor proc /topcpu3 kp5 monitor proc /topbiotopcpu ) kp6 monitor sys /ave., comma set term /width=132$ kp1 recall /all kp2 recall & kp3 recall /erase' kp0 show proc /sub." period show proc help helpa% f17 show defaultr+ f18  show symb username + f19 show symb passwordC& f20 type/page nl:4 Gold1aDDefine all of the GOLD1 state key definitions (next state is GOLD2).. pf1 change state to GOLD23 pf2 show GOLD1 key definitionss" kp7 show_proj" kp8 show_prod. kp9 cms show library/full" kp1 kept mail! kp2 kept lse ! kp3 #se. . . Processing . . EDIT. . . Parameters. . . Processing . . SBO. . . Parameters.. . . Processingr . . RSLIB.. . . Parameters . . . Processing.. . TESTTOOLSe. . . Parametersr. . . Processingl. . TEXTOOLS. . . Parameterss. . . Toolkitss. . . Processing.PROJPROJLIBS. Tools. Files . Processing. PROJSTATUS. Tools . Processing.PROTPRT_NOTE . Examplese . Processing PUBLICPUR*RGPWDaREALDIR ). ProcessingsREMDISK . Parameters.. . log_name. . rem_node. . rem_disk . Tools Usedt . ProcessingoREMDO.REMOVESBO_DO . Symbols . ExamplesgSETKITS SETROOTz . Examples. . Processing Setting_UpSH*OWSIG_TAPE_BUILD. Tools . ProcessingfSIG_TAPE_UPDATEC . Logicals . Tools. Files . Processingp. Subroutines . . updateSPELLINGSQAtSQAFSQFfSTDIOd . ParameterssSUBSYMBOLS- . Examples-SYS$LOGIN_directory-T*YPE-Table_of_Con kept edt# kp4 kept notese kp0 kept4 Gold2.DDefine all of the GOLD2 state key definitions (next state is GOLD3). 2 SETLOGS.COMi&Define all of D. Amby's logical names. 3 Parameters1p1,..p8 can be qualifiers for the DEFINE command. 3 ProcessingF 1. Use the logical name DCL_TRACE to determine whether or not toI output a message with the filename and parameters. This is to bedH able to get an execution trace by the use of the command DEFINE DCL_TRACE TRUE.. 2. Ensure default directory is this one.E 3. Process the "quals_in", creating the "quals" symbols to be at, valid qualifier for DEFINE command.7 4. Define the AMBY_* logical names that are used.t - amby_root - amby_cms  - amby_topv - amby_root - amby_exei - amby_help - amby_hlbE - amby_mail7 5.  Define the HOME$* logical names that are used.e - home_root,home$root - home_top,home$top - home_data,home$data3 6. Define the logicals for building products.O - common_root - common_objt - common_srcn - common_scaR - amby_obj,amby_obj5 7. Define the HEI project related logical namesfG 8. Define the logicals names that are used by the ISEE, RSLIB ando-  other development environment tools.  - amby_siteE This is the rooted logical that is used to base the SITE ( tools for testing purposes.# - isee_local,rslib_localoF This is the rooted logical that is used to base the users LOCAL work area.t - prod_set - proj_hlbT - context_set - proj_seto - user$data - base$dictionary+ 9. Add the site-specific definitions. 2 SETSYMBS.COMGDefines all of the Global symbols used to invoke the tools contained in this toolkit. 3 Logicals6The following logical names are assumed to be defined.4 AMBY_EXE Toolkit executable directory.1 AMBY_HLB Toolkit HELP library file. D AMBY_ROOT Logical disk where all of D. Amby's stuff is. 3 ProcessingF 1. Use the logical name DCL_TRACE to determine whether or not toI output a message with the filename and parameters. This is to beiH able to get an execution trace by the use of the command DEFINE DCL_TRACE TRUE.G 2. Determine what version of VMS this is running on, so that some " symbols can be different.G 3. Get rid of some of the 'crummy' global symbol definitions thate$ continually cause problems. - lse - print - protect - project - setup_visionD ( - submitt - unprotect7 4. Define the 'normal' global symbols to be used.. - amby  - ambyhelp  - ambylibs  - ambyutils - aserver - broad - build_prod - bye - cdE - cls - daily - daily_hilites - dcl - dclchangesT - dclshrink - deu - del*etm* - dir - dirsn - diskuse - dtr*32t - edt - emp - everylibs - files - group - help  - highlights  - hlp - hlbquals  - install_edt - install_prod  - logicalsO - mail  - mailcmd - mailfiley - mailsearch  - mail_fold-ersr - mem - mke_doO - monthly_hilites - msg_off - msg_ons - mvy - noi - nobroad - parento - print - private - prodl - prodstatusi - projl - projlibsc - projstatus  - protT - prt_notet - pu*rg - public  - pwd, - realdir - remdisk - remdo - remove  - sbo_do  - setkeys - setkits - sh*ow - spellingc - sqa - sqafU - sqf - sub - symbols - texlismms - t*ype - timen - toolkits  - top - topbioT - topcpuy - unprot  - up  - useless - use*rsg - vdl - vms - w132E - w80 - welcome - wrk+ 5. Add the site-specific definitions.t 2 SETUP.COMCDPerforms the overall setup for this toolkit, making use of the otherISET*.COM files (if they exist). This will change the default directory toIEbe where this file is located, through the use of the F$ENVIRONMENT() -lexical function, and run the SET*.COM files.c 3 Parameters+setup_type to indicate kind of setup.m 3 Files UsedFThis procedure will check for the existance of the following files, inCthe same directory this file is located in. If they exist, they area executed in the following order.7 SETLOGS.COM Defines toolkit logical names. 8 SETSYMBS.COM Defines toolkit global symbols. 3 ProcessingF a. Use the logical name DCL_TRACE to determine whether or not toI output a messag4 * P2 - A global symbol to receive the result.3 * P3 - The keyword or a unique abbreviation.7 * P4 - A comma-separated list of valid keywords.5 ResultEIf the (abbreviated) keyword is valid and unique, the full keyword isBreturned. If the keyword is invalid or null, then a null string is returned. 4 setrootGThis can be used to simplify the definition of logical devices, so that?you can supply the directory name in any format that is a validdirectory spece with the filename and parameters. This is to betH able to get an execution trace by the use of the command DEFINE DCL_TRACE TRUE.wwocedure.e; * PROJ_NAME - name of current RSLIB defined project.o> * CONTEXT_NAME - name of current RSLIB defined context.; * PROD_NAME - name of current RSLIB defined product. 3 ProcessingF 1. Use the logical name DCL_TRACE to determine whether or not toI output a message with the filename and parame procedure first appeared on the DECUSserve system, and the followingu.is the text of the note that it appeared with.Q ================================================================================Q Note 55.12 "You Have New Notes" message needed 12 of 12dQ EISNER::GEIER "Jim Geier, General Instrument" 77 lines 5-SEP-1989 20:42 @ -< But we like different date/time formats! >-Q ------------------------------------------------------------------- -------------_ AK > This procedure uses VMS Sort to remove header lines and any conferenceslE > whose unseen count is 0; a sort specification file "NOTESDIR.SRT"i hC The procedure shown in 55.11 works fine *unless* you happen to.A change the default display for the time and date (which many > of our users do). When the time/date format is different,= Notes adjusts the heading to accomodate the width of the? date/time field. Thus one cannot rely on column 42 being a_?`o 1 AMBYLIBSJSets the current DEC/CMS library to be a search list with ALL of D. Amby'sJCMS libraries in it. This also includes the common ISEE CMS library, since+many of this projects tools make use of it. $ AMBYLIBS2 ToolsHThis tool makes use of some other non-standard tools that are assumed toexist.B * CMSLIBS To define CMS librar(ies) from data file.2 FilesThe following files are used.K * AMBY_DATA:PROJLIBS.DAT List of D. Amby's CMS library directories. 2 ProcessingH a. First check for the AMBY_DATA:PROJLIBS.DAT file, and if it does7 not exist, output an error message and return.J Deassign the logical name CMS$LIB so we are starting with a fresh CMS library list.I b. Just use the CMSLIBS tool to do the work, by passing it the file AMBY_DATA:PROJLIBS.DAT.- c. Set the process name to be AMBYLIBS.ww`D1 PARSEMSimple interface for running the F$PARSE() lexical function. You must use the)AMBYUTILS command to define this utility.E $ PARSE file-spec default-spec related-spec field parse-typeYFFor information on the items that can be used with the F$PARSE lexicalKfunction, see the HELP LEXICAL F$PARSE topic or the VAX/VMS DCL Dictionary. 2 ProcessingK a. Check to see if user specified a file_spec. If not, then just exitG b. Output result of jurall setup for working on the DECUS product of the DECUSproject. 4 ParametersNone are used. 4 ToolkitsFThis will check to see if an appropriate logical name is defined for aAtoolkit, and if not then attempt to run the command to set up thetoolkit.. DECUSTOOLS DECUS provided tools.- DOCTOOLS Documentation tools.g5 TEXTOOLS Tex/LaTeX typesetting tools. 4 ProcessingF a. Use the logical name DCL_TRACE to determine whether or not toFf ZՐX 1 AMBYUTILS JDefines additional global symbols for using some utilities that do not see,that much use that are part of this toolkit. 2 Logicals6The following logical names are assumed to be defined.4 AMBY_EXE Toolkit executable directory. 2 SymbolsLHThe following global symbols are defined for accessing some infrequentlyused tools (or utilities). * cvtimen * didcmsa * doccms  * environment * everylib_in L 1 ASERVERHSends a command to the Clarkson Archive-Server system, that is where theLaTeX-Styles are kept. ASERVER command'Commands can be of the following forms: * send index latex-style) * send latex-style iso.sty iso.tex 2 LogicalsKThe following are the tool-specific and user-general logical names that areused by this tool.: ASERVER_DEBUG "TRUE" runs this in DEBUG mode.A ASERVER_VERIFY "TRUE" runs thi s with verification on.F USER$SCRATCH Directory for all temporary files created.B INTERNET$ADDRESS Return addres for ASERVER to reply to.7 ARCHIVE-SERVER Address to send message to. 2 Processing a. InitializationK 1. Define all of the local symbols, that will essentially be usedB as constants, variables, and DCL commands within this procedure.B 2. Get the values of the logical names ASERVER_DEBUG and? ASERVER_VERIFY into local symbols for later usage.H 3. Define local symbols that represent temporary files used byK this tool. They are to be created (and deleted before EXIT) in7 the user scratch directory (USER$SCRATCH). * mail_file b. Main ProcessingB 1. Define the CONTROL/Y, and error conditional handling.H 2. Check to see if the logical name USER$SCRATCH is undefined,: and if so define it be the same as SYS$LOGIN.I 3. Check the values from the various logicals, and define local+ symbols to appropriate values. c. Error Processing' * No return Internet Address. * No Archive-Server address defined * No command to send7 * Handle ERROR condition, then go to return.> * Handle SEVERE error condition, then go to return.; * Handle CONTROL_Y condition, then go to return.F * Handle abnormal end of file on READ condition, then go to return.< * Handle READ ERROR condition, then go to return. d. Return ProcessingF Close any files that were opened (via OPEN), delete temporary? files, restore verification, and EXIT with the currentI 'ret_status' value, (.or. with 'ret_mask' to disable VMS message display).ww@X  1 BUILD_PRODIThis procedure is the generic Product BUILD driver, that uses the currentMvalue of the logical name PROD_NAME to determine what product is being built. Parameters prod_object p1G build_parms the rest of the command line (up to 8 total) 2 Processing * Main processingH 1. Check to make sure user entered a product name code, and ifE not then output error message and goto "return" section.K 2. Check for the file 'prod_name'_BUILD.MMS, which must exist. IfC it If it does not exist, output error message and goto "return" section.H 3. Create a /SINCE qualifier for a DIRECTORY command that willB list all files created since the current time (before building).I 4. Invoke DEC/MMS using /DESCRIP=prod_BUILD.MMS and the rest of6 the parmeters (prod_object, build_parms).E 5. Give a directory listing of all files created since thisI procedure began. These are all of the files that were built. * Error processing< * error - set return status to 4, and goto return * Return processingH Exit with return status (ret_status) masked to not have message displayed.wwh\ 1 CVTIMEKTest procedure that will excercise some of the capabilies of the F$CVTIME()lexical function.ww 1 DAILYLPerform the necessary DAILY processing for D. Amby to indicate what has beenBaccompished for this day (or the time frame that is given as input parameters).7 DAILY [since_date [before_date [username]]]JThis will create a log file of what has been done, based on the running ofISITE_SPECIFIC:DAILY.COM, and then MAIL the results to the username of theperson running it. 2 ParametersFSince this is a DCL command procedure, you must use "" to indicate any:parameters you wish to omit, before later ones to include.= a. since_date - value to use for any /SINCE=date items.? b. before_date - value to use for any /BEFORE=date items.< c. username - name of user for /FROM or /AUTHOR items. 2 LogicalsKThe following are the tool-specific and user-general logical names that areused by this tool.8 DAILY_DEBUG "TRUE" runs this in DEBUG mode.? DAILY_VERIFY "TRUE" runs this with verification on.E SYS$SCRATCH Directory for all temporary files created. 2 Processing a. InitializationK 1. Define all of the local symbols, that will essentially be usedB as constants, variables, and DCL commands within this procedure.@ 2. Get the values of the logical names DAILY_DEBUG and= DAILY_VERIFY into local symbols for later usage. b. Main ProcessingB 1. Define the CONTROL/Y, and error conditional handling.K 2. Check to see if the logical name SYS$SCRATCH is undefined, and6 if so define it be the same as SYS$LOGIN.I 3. Check the values from the various logicals, and define local+ symbols to appropriate values.C 4. See if there is a DAILY procedure in the SITE_SPECIFICJ directory, and if so then run it (logging results into a file8 that is MAILed) to the person running this. c. Error Processing7 * Handle ERROR condition, then go to return.> * Handle SEVERE error condition, then go to return.; * Handle CONTROL_Y condition, then go to return.F * Handle abnormal end of file on READ condition, then go to return.< * Handle READ ERROR condition, then go to return. d. Return ProcessingF Close any files that were opened (via OPEN), delete temporary? files, restore verification, and EXIT with the currentI 'ret_status' value, (.or. with 'ret_mask' to disable VMS message display).ww>Q1 DAILY_HILITESGRuns the HILITES tool to generate a report on the daily hilites for the$person, date, and project specified.8 DAILY_HILITES userid [date [project [wa?]]]ww 'A1 DCLJVery trivial DCL tool that allows you to run any DCL command via a commandMprocedure interface. All this does is just pass everything along as a commandDto be run. What it does allow you to do is log the output to a file.0 $ DCL /OUT=output-file any-dcl-command 2 ExamplesKOne good example of this is trying to generate a list of the current globalGsymbols that you have defined to a file (such as SYMBOLS.LOG). The SHOWHSYMBOL command does not have an /OUTPUT qualifier (like the SHOW LOGICAL command).8 $ DCL /OUT=SYMBOLS.LOG SHOW SYMBOL /ALL/GLOBALww(tents TEXLISMMS. Tools . ProcessingoTIMERe . UtilitiesTOOLCMSm . Parametersf . Processinga. Subroutines . ExamplesoTOOLKITS . Parameters . Tools . Processingl . AuthorsTOOLMOVE . Parameters . . tool_group. . out_file. . cms_libraryu. . cms_classs. Tools . Logicalsd . ProcessingiTOP TOPBIOTOPCPUUNPROTUPUSE*RSUSELESSd Utilities. CONTEXT_SET.COM. . Logicals . . Files . . Processing. CVTIME.COM*. DIDCMS.COM*. . Parameters. . Processing. . Examples. DOCCMS.COM*. . Parameters. . Processing. . Subroutinese. . Examples. ENVIRONMENT.COM* . . Exampleu . . Author. EVERYLIB_INFO.COM*c. FILE_ATTRIBUTES.COM* . . Parameters. . Referencei. . Processing. GETDVI.COM*. . Processing. GETJPI.COM*. . Parameters. . Reference . . Processing. GETSYI.COM*. . Processing. INTERNET.COM*. . Logicals. . Processing . JULIAN.COMh. LOGREPS.COM . . Filest. MARKREPS.COM* . . Filese. NEWNOTES.COM . . Processing. . Examples. . ReferenceM . PARSE.COM*a. . Processing. PROD_SET.COMs. . Logicals . . Filese. . Processing. PROJ_SET.COMn. . Logicals . . Files . . Processing. SECONDSTIME.COM. . Examples. . Processing. SET_PROC_NAME.COM. . Logicals. . Processing. SIG_TAPE_UPDATE.COM*h. . Logicals . . Toolsq . . Filesh. . Processing. . SubroutinesL. . . update . STDIO.COM*i. . Parameters . TIMER.COM*o. . Utilitiesn. TOOLCMS.COM*. . Parameters. . Processing. . Subroutinesa. . Examples. TOOLMOVE.COM*. . Parameters. . . tool_groupo. . . out_file. . . cms_library. . . cms_class . . Toolsi. . Logicals. . Processing. TOOLSLIB.COMw. . Examples. . Referencee. . Subroutines . . . ask. . . . Parameters. . . . Result. . . signalI. . .  . Parameters. . . . Status. . . lookup_keyword$. . . . Parameters. . . . Result. . . setroot. . . . Parameters. . . . Processing. . . initializeC. . . . Parameters. . . . SymbolsO . YRSEC.COM. . Utilities/VDL=VMS W132W80WELCOME WRKp . Parameters . Logicalsn . Examplesr . Processingww Handlers defined for interrupt and error handling, and the Exit code is+run prior to exiting from this application.3 InitializationG a. Save parameters in local symbols that are easier to reference.G b. Block the use of dangerous "external" personal commands. TheseB are so that any personal commands defined outside of thisI procedure are effectively hidden and will not interfere with the application.F c. Save the current message and privilege settings, etc. so that) they may be restored at the end.= d. Define some simple status codes for the application.I e. Establish the interrupt and error handlers. Make sure the statusH indicates success if we exit normally. Up to this point, errorsG and interrupts will cancel the procedure harmlessly. From thisI point on, they will cause the appropriate handler to be invoked.I f. Establish the message and privilege environment. The settings of= DCL environment items are altered as required by the application.I g. Set up some useful symbols for the application. Various symbolicI constants, personal commands, and other useful local symbols are define., h. Supply defaults for some parameters3 MainGThis is where the actual application begins, and the real work is done.I a. Before going any further, make sure that the DCL.COM file existsG in the same directory that this command procedure is found. ItE is used so that the output of the SHOW SYMBOL command can be$ directed to an output file.A b. If there was a command input, then we want to run it andI generate output difference listings for logicals and symbols. IfH not, then all we want to do is generate initial versions of the log files.H c. Check to see if a command was specified as the first parameter.2 If not, output an error message end exit.E d. If there was a command entered, then proceed to document its effect.A 1. Generate listing of current logical names and global symbols.A 2. Run the command that was entered as first parameter,F restoring directory so we get back to where listing files- are that were generated earlier.G 3. Generate listings of logical names and global symbols intoG temp files, and add headings to them documenting the time,3 default directory, command, and so on.E 4. Generate difference listings of the logicals and symbolsA from the ones generated already. This then serves to: document the effect from running the command. 3 HandlersG a. The interrupt handler sets the summary status to indicate thatE was pressed and then joins the cleanup (Exit) code.E b. The error handler sets the summary status to the "offending"8 status then also joins the cleanup (Exit) code.3 ExitFThe exit routine first performs cleanup. Then it restores the original:DCL environment. Finally it exits with the summary status.2 Author Donald E. Amby& Harnischfeger Engineers, Inc.; P.O. Box 1512 or 13400 Bishops Lane= Milwaukee, WI 53201 Brookfield, WI 53005) 414-797-6713, 414-797-6533 (FAX) DECUServe,DCS: AMBY# CompuServe: 73547,32567 Internet: don@amby.mixcom.com (home)< amby@eisner.decus.org (DECUServe)7 UUCP: uunet!mixcom!amby!don (home)@ {decwrl,nosc,crash}!simpact!eisner!ambywwE 1 DCLSHRINKFThis tool can be used to shrink a DCL command procedure. It does so byKremoving ALL comments and converting everything (except for quoted strings)to upper case.) $ DCLSHRINK in-file [out-file]JThe input file (in-file) is assumed to be a VMS DCL command procedure, andJthe output file (out-file) will be named the same as the input file with a!filetype of .DCLSHINK if omitted. 2 Processing 2 Reference7 From: EISNER::ROECKEL 9-NOV-1989 13:32 To: AMBY,ROECKEL Subj: IIf you have any questions, feel free to call me at (813) 384-7851. I willCbe out-of-town until November 20th, but anytime after that is fine.Bruce W. RoeckelFlorida Power Corporationwwb1 DIDCMSMDCL command procedure that will insert all of the source files for a standardEDID (Data Item Description) for the DOCTOOLS into the current DEC/CMSlibrary.A $ DIDCMS name "description of DID" cre-quals ins-quals 2 Parameters Parm Function7 ---- -------------------------------------- p1 DID name., p2 DID description (for group)8 p3 Qualifiers for all CMS CREATE ELEMENTs.8 p4 Qualifiers for all CMS INSERT ELEMENTs. 2 Processing5 a. If there is a DID_CMS.COM file, then run it.0 b. Create DEC/CMS group for all DID files. 2 ExamplesAThe following are some simple examples of how to use this tool...ww 1 DISKUSELThis will generate a summary listing of the total number of allocated blocks6used in each top-level directory tree on a given disk.' $ DISKUSE disk [output-file] 2 Parameters< disk Name of disk to compile report for.@ out-file Optional name of report file to create. 2 ReferenceGThis tool originally came from the following file on the ARIS/BB system2that is available to VAX Professional subscribers.6  DISKCOM.DOC (7 bl.) "DISKUSE.COM"6 By Joel AskeyH Vol. 10.1, February 1988, p. 184It has been modified by Don Amby to be more general.ww Լ1 DOCCMSMDCL command procedure that will insert all of the source files for a standard*document into the current DEC/CMS library.F $ DOCCMS name "description of document" cre-quals ins-quals 2 Parameters Parm Function7 ---- -------------------------------------- p1 Document name.1 p2 Document description (for group)8 p3 Qualifiers for all CMS CREATE ELEMENTs.8 p4 Qualifiers for all CMS INSERT ELEMENTs. 2 Processing: a. If there is a document_CMS.COM file, then run it.5 b. Create DEC/CMS group for all document files.I c. Create the elements for document files, and insert each into the overall document group. 2 Subroutines 1. ADD_ELE 2 ExamplesI * Insert files for the TEST document into the current CMS library.3 $ DOCCMS TEST "Test document..."ww?1 EMPFThis is an Electronic Message Pad that can be used to record telephoneFmessages and short notes. the program builds a temporary file with the3message that is sent to a system user via vms mail.7 $ EMP [username] [caller-name] [caller-number] 2 Parameters@ username Username of who is to get message memo.4 caller-name Name of person that called.@ caller-number Phone number of the person that called. 2 ReferenceGTh is tool originally came from the following file on the ARIS/BB system2that is available to VAX Professional subscribers.E VMSMAIL.DOC (7 bl.) "The Electronic Message Pad"? By John H. ThomstatterF Vol. 10.4, August 1988, p. 414It has been modified by Don Amby to be more general. 2 WarningKUse these procedures at your own risk. Professional Press is not liable for8any damage that these utilities might do to your system.KThe programs available here are for the exclusive use of subscribers to DECHPROFESSIONAL, VAX PROFESSIONAL and HP PROFESSIONAL. This code may not be0transferred to other electronic bulletin boards.IOnly programs are presented here. To order the full text of articles, use>either the Back Issues option of ARIS, or the Reprints option.ww 1 EVERYLIBLSets the current DEC/CMS library to be a search list with EVERY library thatJD. Amby could possibly ever want to do any work in. This is used to set up>the search list of CMS libraries so as to see everything done. $ EVERYLIB2 ToolsHThis tool makes use of some other non-standard tools that are assumed toexist.B * CMSLIBS To define CMS librar(ies) from data file.2 FilesThe following files are used.J * SITE_SPEC IFIC:EVERYLIB.CMSLIBS site-specific CMS libraries list. 2 ProcessingJ Deassign the logical name CMS$LIB so we are starting with a fresh CMS library list.H a. Just use the CMSLIBS tool to do the work, by passing it the CMS$ libraries in the data file.- b. Set the process name to be EVERYLIB.ww^ 1 SYMBOLSGGenerate a list of the global symbols that are currently defined in theToutput file SYMBOLS.LOG. $ SYMBOLS [symbol]4If you omit the symbol, then all symbols are output. 2 Examples * $ SYMBOLS: Lists all global symbols to the file SYMBOLS.LOG. * $ SYMBOLS A*XC Lists all global symbols to SYMBOLS.LOG that begin with A.ww AMBY LOGICALS a4 AMBY LOGREPS `6 AMBY 1 EVERYLIB_INFOLThis procedure can be used to generate some monthly reports based on the CMS4libraries that are established by the EVERYLIB tool." $ @AMBY_EXE:EVERYLIB-INFOww_"1 FILE_ATTRIBUTESJSimple interface for running the F$FILE_ATTRIBUTES() lexical function. You5must use the AMBYUTILS command to define this utility& $ FILE_ATTRIBUTES file [item] 2 Parameters a. file9 Required name of a valid VMS file specification. b. itemH Optional item for lexical function. If you omit this, the it is= equivalent to "*" which indicates to list ALL items. 2 ReferenceHFor information on t he items that can be used with the F$FILE_ATTRIBUTESElexical function, see the HELP LEXICAL F$FILE_ATTRIBUTES topic or theVAX/VMS DCL Dictionary. 2 ProcessingJ a. Check to see if an item was entered. If none was specified (or if2 it was "*") then display a complete list.ww@f$1 GETDVIJSimple interface for running the F$GETDVI() lexical function. You must use,the AMBYUTILS command to define this utility& $ GETDVI [device-name [item]]GFor information on the items that can be used with the F$GETDVI lexicalLfunction, see the HELP LEXICAL F$GETDVI topic or the VAX/VMS DCL Dictionary. 2 ProcessingG a. Check to see if user specified a device. If not, then just use SYS$DISK.I b. Check to see if second parameter of an item was entered. If noneG was specified (or if it was "*") then display a complete list.ww k&1 GETJPIJSimple interface for running the F$GETJPI() lexical function. You must use,the AMBYUTILS command to define this utility $ GETJPI [pid [item]] 2 Parameters a. pidE Optional process id. If omitted, it is assumed to be the the current process. b. itemH Optional item for lexical function. If you omit this, the it is= equivalent to "*" which indicates to list ALL items. 2 ReferenceGFor inform ation on the items that can be used with the F$GETJPI lexical@function, see the HELP LEXICAL F$GETJPI topic or the VAX/VMS DCL Dictionary. 2 ProcessingJ a. Check to see if an item was entered. If none was specified (or if2 it was "*") then display a complete list.wwܭ'1 GETSYIJSimple interface for running the F$GETSYI() lexical function. You must use,the AMBYUTILS command to define this utility $ GETSYI [item [node]]GFor information on the items that can be used with the F$GETSYI lexicalLfunction, see the HELP LEXICAL F$GETSYI topic or the VAX/VMS DCL Dictionary. 2 ProcessingJ 1. Check to see if an item was entered. If none was specified (or if2 it was "*") then display a complete list.wwG() 1 HIGHLIGHTSMThis is a DCL command line driven interface for the HILITES tool, that allowsKyou to enter all of the information that HILITES asks you for as parametersto this.D HIGHLIGHTS proj user start-date end-date wa? out-file 2 Datatrieve<The following DATATRIEVE objects are reference in this tool.TASKS$DICTIONARY.HILITE_REPwware the parameters that can be included on the command line,!in the order of their appearance.3 hlp_topic Help topic for qualifiers.F out_file Output file. If omitted, the default is used.G hlb_lib Help library (defualt is system help library). 3 hlp_topicFThis is the help topic for which you wish to generate a listing of the=qualifiers. This must exist in the help library that you use. 3 out_fileAThis is the name of the output file. If omitted, then the name isHdetermined from the 'hlp_topic'. The 'hlp_topic' is the filename and thefiletype is ".QUALIFIERS".IFor example, if the hlp_topic is MACRO, then the default output file willbe MACRO.QUALIFIERS. 3 hlb_libGThis is the name of the help library that you will find the 'hlp_topic'Iin. If you omit this, then the default is to use the system help library. 2 Tools_Used.The following tools are used within this tool.H GREP This is a Unix-like search tool, that is very powerful. 2 LogicalsIThere are several logical names that you may use to specify user specificfeatures to this tool.3 HLBQUALS_DEBUGGIf defined to be "TRUE" the tool runs in DEBUG mode. This can be usefulGduring testing, as it causes additional output to let you know what thetool is 'really' doing.%If undefined, the default is "FALSE".% $ DEFINE HLBQUALS_DEBUG TRUE3 HLBQUALS_VERIFYGIf defined to be "TRUE" verification is turned on within the tool. ThisHdoes require that you have READ access to the DCL procedure for the tool(if there is one).- $ DEFINE HLBQUALS_VERIFY TRUE 3 AMBY_MODEEThis is used to allow you to tailor the user interface, by giving theFminimal amount of information when prompting you for parameters, etc.,when it is defined as "EXPERT"."If undefined, "NOVICE" is assumed.& $ DEFINE AMBY_MODE EXPERT 3 USER$EDITIThis defines a DCL command string that is used for any user edit commandsHwithin the tool. This allows you to specify what editor you want to use,2when the tool invokes a text editor interactivele.)If undefined, then "EDIT/EDT" is assumed.8 $ DEFINE USER$EDIT LSEDIT ! to use LSEDIT 3 SYS$SCRATCHBThis logical name is used to point to where temporary files can be?created. It is defined at login time to point to your SYS$LOGINHdirectory, but you can redefined it to point to any other directory that you wish. 2 Examples8The following are some examples of how to use this tool.G * Generate a listing of qualifiers for the MACRO topic, from theG system help library, and have the output in the default output! file (MACRO.QUALIFIERS).! $ HLBQUALS MACROJ * As previous example, but this time have the output written to the file MACRO.LST.+ $ HLBQUALS MACRO MACRO.LST2 Author Donald E. Amby& Harnischfeger Engineers, Inc.; P.O. Box 1512 or 13400 Bishops Lane= Milwaukee, WI 53201 Brookfield, WI 53005) 414-797-6713, 414-797-6533 (FAX) DECUServe,DCS: AMBY# CompuServe: 73547,32567 Internet: don@amby.mixcom.com (home)< amby@eisner.decus.org (DECUServe)7 UUCP: uunet!mixcom!amby!don (home)@ {decwrl,nosc,crash}!simpact!eisner!ambyww`- 1 INSTALL_EDTBInstalls a single file from the current default directory into the%appropriate toolkit output directory.5 $ INSTALL_EDT in_file [kit_dir [out_file]]JOptional parameters are indicated by square brackets [optional-parm]. Null5parameters on the command line are indicated by a "". 2 parametersJThe following are the parameters that can be included on the command line,!in the order of their appearance.$ in_file Input file.6 kit_dir Directory to install file to.C out_file Output file (if different than "in_file"). 3 in_fileAToolkit source file that you wish to install into the appropriate1directory in the Toolkit run-time directory tree. 3 kit_dir7Directory where the "out_file" is to be installed into. 3 out_fileGOutput file, within "kit_dir" where you edited file is to be installed.FThere are several formats that can be used to specify the output file,Iwhich allo w the use of the wild card '*'. Also it will use the device andCdirectory of the preceding file parameter (in_file) as its default.GIf you want the output file to be written in the current directory, butHthe preceding file parameter has a device, directory, or logical name asHdevice/directory, then you must force the current directory by precedingthe file name with '[]'.> []*.TXT Forces file to be in current default.E *.TXT Will use device and directory of input file. 2 LogicalsIThere are several logical names that you may use to specify user specificfeatures to this tool.3 INSTALL_EDT_DEBUGGIf defined to be "TRUE" the tool runs in DEBUG mode. This can be usefulGduring testing, as it causes additional output to let you know what thetool is 'really' doing.%If undefined, the default is "FALSE".- $ DEFINE INSTALL_EDT_DEBUG TRUE3 INSTALL_EDT_VERIFYGIf defined to be "TRUE" verification is turned on within the tool. ThisHdoes require that you have READ access to the DCL procedure for the tool(if there is one).- $ DEFINE INSTALL_EDT_VERIFY TRUE 3 PROD_NAMEHThis is assumed to be defined as the PRODUCT name of the current productCunder development. This is used to construct the default "kit_dir". 3 AMBY_MODE 3 USER$EDITIThis defines a DCL command string that is used for any user edit commandsHwithin the tool. This allows you to specify what editor you want to use,2when the tool invokes a text editor interactivele.)If undefined, then "EDIT/EDT" is assumed.8 $ DEFINE USER$EDIT LSEDIT ! to use LSEDIT3 USER$SCRATCHHThis defines the location of a directory for all temporay files that arecreated within the tool itself.2If undefined, then the value of SYS$LOGIN is used.6 $ DEFINE USER$SCRATCH USER$DISK:[AMBY.TEMP] 2 Examples8The following are some examples of how to use this tool.I * Install the file TOOL.COM in the normal location for *.COM files (PROD_EXE).' $ INSTALL_EDT TOOL.COMJ * Install the file PROJ_SETUP.COM in the top directory for the PROJ2 toolkit (PROJ_TOP) as the file SETUP.COM.C $ INSTALL_EDT PROJ_SETUP.COM PROJ_TOP SETUP.COM2 Author9 D. Amby, Send mail for problems/comments.ww`uM/1 INSTALL_PRODKThis procedure is the generic product INSTALL driver, that uses the currentFvalue of the logical name PROD_NAME to determine what product is being installed. 2 ParametersKYou may enter a question mark (?) as the first parameter, and you be placedKinto HELP (from the toolkit help library for the tool. You may also respondJto any of the prompts with a question mark (?) and you will be placed into%help for that parameter of this tool.) Parm Symbol FunctionE ---- --------- ------------------------------------H p1 prod_top Top directory where to install PRODUCT.> p2 prod_object PRODUCT object(s) to install.6 p3... install_parms Rest of command line. 3 prod_topBTop directory for the toolkit. Everything is rooted at this point. 3 prod_objectIName of the object that you want to be installed. If omitted, it defaultsDto whatever the first target is in the name_INSTALL.MMS file for thetoolkit.3 install_parmsIThis is just the rest of the command line, which is just passed on to the!MMS job used to 'install' things. 2 Tools Used9SETROOT Defines rooted logical for a device. 2 LogicalsKThe following are the tool-specific and user-general logical names that areused by this tool.= INSTALL_PROD_DEBUG "TRUE" runs this in DEBUG mode.D INSTALL_PROD_VERIFY "TRUE" runs this with verification on.F  USER$EDIT DCL command string to run a text editor.H USER$SCRATCH Directory for all temporary files created.CIn addition, the following toolkit-specific logical names are used.= AMBY_MODE "EXPERT" means user wants expert mode 2 Processing a. InitializationH 1. Get the input parameters into local symbols, and save p1 asE "parm1" parameter independent check for a question mark.K 2. Define all of the local symbols, that will essentially be usedB as constants, variables, and DCL commands within this procedure.H 3. Define local symbols that represent temporary files used byK this tool. They are to be created (and deleted before EXIT) in7 the user scratch directory (USER$SCRATCH). * tmp_fileD 4. Get the values of the logical names INSTALL_PROD_DEBUG,K INSTALL_PROD_VERIFY, AMBY_MODE, USER$EDIT , and USER$PRINT into+ local symbols for later usage.B 5. Define the CONTROL/Y, and error conditional handling.H 6. Check to see if the logical name USER$SCRATCH is undefined,: and if so define it be the same as SYS$LOGIN.I 7. Check the values from the various logicals, and define local+ symbols to appropriate values.E 8. Check to see if this is being run within TAE context. IfI running within a TA E subprocess the logical name TERMINAL is. defined, and the mode is "OTHER".? 9. Get the necessary PROJ_* and PROD_* logical names. b. Parameter ProcessingJ 1. Check for a question mark (?) as the first parameter. If thisK is the case reference the Toolkit help library (AMBY_HLB), andK display the help for this tool, leaving the user in HELP. ThisK is so that they may check out any subtopics before proceeding.H 2. Define all local symbols that are used for prompt messages,: and error messages related to each parameter. 3. prod_topF Check to see that the user passed in a name for the inputK file. If so, proceed on. If not, and this is interactive, then% prompt the user for one. 4. prod_objectH Check to see if the 'prod_object' was passed on the commandF line. If it was do nothing. If not, and this is being runF interactively, then prompt the user for an 'prod_object'. c. Main ProcessingH 1. Create a /SINCE qualifier for a DIRECTORY command that willB list all files created since the current time (before installation).K 2. See if there is a prod_INSTALL.COM file, and if it exists thenJ run it. This will set up the context for the prod_INSTALL.MMS to work.K 3. Invoke DEC/MMS using /DESCRIP=prod_INSTALL.MMS and the rest of6 the parmeters (prod_object, build_parms).E 4. Change default to the top directory for the product, andI output a directory listing (using "since_qual") of all files installed. d. Error Processing7 * Handle ERROR condition, then go to return.> * Handle SEVERE error condition, then go to return.; * Handle CONTROL_Y condition, then go to return.F * Handle abnormal end of file on READ condition, then go to return.< * Handle READ ERROR condition, then go to return. e. Return ProcessingF Close any files that were opened (via OPEN), delete temporary? files, restore verification, and EXIT with the currentI 'ret_status' value, (.or. with 'ret_mask' to disable VMS message display).wwd0 1 INTERNETMSends a test mail message to anyone on the Internet. The message will include*the address that you used to send to them. INTERNET addressLThe "address" is the actual Internet format address (name@name.name) that ispublished for a person. 2 LogicalsKThe following are the tool-specific and user-general logical names that areused by this tool.; INTERNET_DEBUG "TRUE" runs this in DEBUG mode.B INTERNET_VERIFY "TRUE" r uns this with verification on.F USER$SCRATCH Directory for all temporary files created.D INTERNET$ADDRESS Return address for INTERNET to reply to.E INTERNET$GATEWAY VAX/VMS MAIL gateway to route to Internet7 ARCHIVE-SERVER Address to send message to. 2 Processing a. InitializationK 1. Define all of the local symbols, that will essentially be usedB as constants, variables, and DCL commands within this  procedure.C 2. Get the values of the logical names INTERNET_DEBUG and@ INTERNET_VERIFY into local symbols for later usage.H 3. Define local symbols that represent temporary files used byK this tool. They are to be created (and deleted before EXIT) in7 the user scratch directory (USER$SCRATCH). * mail_file b. Main ProcessingB 1. Define the CONTROL/Y, and error conditional handling.H  2. Check to see if the logical name USER$SCRATCH is undefined,: and if so define it be the same as SYS$LOGIN.I 3. Check the values from the various logicals, and define local+ symbols to appropriate values. c. Error Processing0 * No INTERNET$GATEWAY logical defined6 * No address give to send Internet mail to.7 * Handle ERROR condition, then go to return.> * Handle SEVERE error condition, then go to return.; * Handle CONTROL_Y condition, then go to return.F * Handle abnormal end of file on READ condition, then go to return.< * Handle READ ERROR condition, then go to return. d. Return ProcessingF Close any files that were opened (via OPEN), delete temporary? files, restore verification, and EXIT with the currentI 'ret_status' value, (.or. with 'ret_mask' to disable VMS message display).ww؝2 1 LOGICALSMGenerate a list of the logical names that are currently defined in the outputfile LOGICALS.LOG. $ LOGICALS [logical]6If you omit the logical, then all logicals are output. 2 Examples * $ LOGICALS5 Lists all logicals to the file LOGICALS.LOG. * $ LOGICALS A*> Lists all logicals to LOGICALS.LOG that begin with A.ww`2O4 1 LOGREPSHQuick and dirty shell that can be used to generate usage reports for theHvarious toolkits that make use of the LOGTOOL utility for usage logging.M $ LOGREPS report-type data-file begin-date end-date report-suffix Defaults: report-type "TOTAL"4 data-file "SITE_SPECIFIC:LOGTOOL.DAT" begin-date "TODAY" end-date "NOW"% report-suffix "-USAGE.RPT"2 FilesEThe data-file that i s used as input to this is assumed to contain theHfollowing 2 fields of data (on each line) with each item terminated by aJsemicolon ";". The semicolon acts as a field terminator within each record (or line).% a. Report prefix (such as BASE)C b. LOGTOOL log file (such as ISEE$ROOT:[BASE.DATA]USAGE.DAT).ww`t6 1 MAILCMDJUtility to allow you to enter a single VAX MAIL command at the DCL command line prompt.' $ MAILCMD mail-command-string / $ MAILCMD /OUT=file-spec mail-command 2 ProcessingG a. Determine whether the logical name USER$SCRATCH is defined (to0 point to a writable scratch directory).J b. Create the temp file with the MAIL command in it, and the EXIT to; return from MAIL, and run MAIL with that is input.D c. Once all done, return to the directory where you came from.wwe output a message with the filename and parameters. This is toD be able to get an execution trace by the use of the command DEFINE DCL_TRACE TRUE.sF b. Set up other tools that are needed for this product, based on/ whether specific logicals are defined.r 1. DECUSTOOLS6 Only if DECUS$EXE is not already defined. 2. DOCTOOLSaA Only if DOC$EXE and DOC_EXE are not already defined. 3. TEXTOOLS 8 1 MAILFILEISends a file (via MAIL) to a particular username. This is used to quickly2send a file to anyone on the system just as it is.# $ MAILFILE file usernameww <9 1 MAILSEARCHKUtility to allow you to search a MAIL folder for messages with a particularGstring in them. This can allow you to search a single MAIL folder (in a!single MAIL file) for any string.? $ MAILSEARCH search-string [mail-folder [mail-file]] N $ MAILSEARCH /OUT=file-spec search-string [mail-folder [mail-file]]IThis tool creates a temporary file with the necessary commands to use the/MAIL> SEARCH command in the proper file/fold er. 2 ProcessingG a. Determine whether the logical name USER$SCRATCH is defined (to0 point to a writable scratch directory).K b. Create the temp file with the MAIL commands in it, and the EXIT to; return from MAIL, and run MAIL with that is input.D c. Once all done, return to the directory where you came from.ww;1 MAIL_FOLDERSMGenerates a listing of the current VAX MAIL folders in the mail file that youMspecify. This is very useful for generating a data file containing all of youJfolder names for performing some MAIL command (say with the MAILCMD tool).$ $ MAIL_FOLDERS [mail-file] 3 $ MAIL_FOLDERS /OUT=out-file [mail-file] IIf you omit the "mail-file", then your default mail file will be assumed.2 Tools2The following non-standard tools are used in this.7 * WORDS To break each folder name to one line. 2 ProcessingG a. Determine whether the logical name USER$SCRATCH is defined (to0 point to a writable scratch directory).J b. Create the temp file with the MAIL command in it, and the EXIT to; return from MAIL, and run MAIL with that is input.D c. Once all done, return to the directory where you came from.wwS= 1 MARKREPSHQuick and dirty shell that can be used to generate usage reports for theIvarious toolkits that make use of the MARKTOOL utility for usage logging.N $ MARKREPS report-type data-file begin-date end-date report-suffix Defaults: report-type "TOTAL"5 data-file "SITE_SPECIFIC:MARKTOOL.DAT" begin-date "TODAY" end-date "NOW"% report-suffix "-USAGE.RPT"2 FilesEThe data-file th at is used as input to this is assumed to contain theHfollowing 2 fields of data (on each line) with each item terminated by aJsemicolon ";". The semicolon acts as a field terminator within each record (or line).% a. Report prefix (such as BASE)D b. MARKTOOL log file (such as ISEE$ROOT:[BASE.DATA]USAGE.DAT).wwIE?1 MKE_DO<Executes a command on one (or all) of the WIZARD LAVC nodes. $ MKE_DO node::commandJWhere 'node' can be any one of WIZARD, MSELV1-MSELV5, or * if you want theBcommand run on each node. For all nodes this uses the logical nameMKE$ALL_NODES. 2 SymbolsJThis assumes that the global (or local) symbols USERNAME and PASSWORD haveFalready been defined to be the username and password for accessing theother systems. 2 Examples$ MKE_DO WIZARD::SHOW USERS$ MKE_DO *::SHOW SYSTEM$ MKE_DO *::SHOW QUEUE /ALLww@1 MONTHLY_HILITESMRuns the HILITES tool to generate a report on the daily (and monthly) hilites,for the person, date, and project specified.8 DAILY_HILITES userid [date [project [wa?]]]ww`+ C1 NOGDirectory (DIR) listing of all files EXCEPT those included as the first parameter.$ $ NO excl-file-list qualswwst passing all parameters on to the F$PARSE lexical.J c. If the user omitted the 'field' and 'parse-type', then output the1 result of F$PARSE for all cases of them.wwiF 1 PRODSTATUSLThis is used to generate a status report on the current product, by checking?the product CMS libraries and files in the product directories.G $ PRODSTATUS [since-date] [before-date] [product] [user-name]EThis assumes that you have already set up a product with the SET_PROD8command, and that the logical name PROD_NAME is defined.2 Tools/This uses some nonstandard tools, listed below.1 * SET_PROJ to define a new product.1 * SET_PROD to define a new product.> * SHOW_PROD to display major product information. 2 ProcessingK a. Check the input parameters, and see if there is a since and beforeC date to deal with. If either was specified, then use it toG construct a /SINCE or /BEFORE qualifier, otherwise do nothing.G b. Check to first be sure that a project is defined, since if not) there is no point in continuing.E c. Display a heading  with product name, and the since or before8 dates, along with the listing from a SHOW_PROD.J d. If the user entered a product name as the 3rd parameter, then set it up.H e. First ensure that a product is defined (logical PROD_NAME has aH value). If it does not, run SET_PROD. Then if there is still no! product defined, return.< f. Generate report on the CMS library for the product.I g. Generate a product directory listing of files created during the period of interestww 9I 1 PROJLIBSESets the current DEC/CMS library to be a search list with ALL of thisKproject's CMS libraries in it. This is based on the file PROJLIBS.DAT (thatHcan be found in the PROJ_DAT or PROJ_DATA directory) which is assumed toFcontain a list of ALL of the project specific CMS library directories. $ PROJLIBS2 ToolsHThis tool makes use of some other non-standard tools that are assumed toexist.B * CMSLIBS To define CMS librar(ies) from  data file.2 FilesThe following files are used.@ * PROJ_DAT:PROJLIBS.DAT List of the project CMS library directories.@ * PROJ_DATA:PROJLIBS.DAT List of the project CMS library directories. 2 Processing? a. Let's first figure out where the PROJLIBS.DAT file is.J b. Deassign the logical name CMS$LIB so we are starting with a fresh CMS library list.J c. Since the file does exist, we can just use the CMSLIBS tool to doI all of the real work, using the appropriate PROJLIBS.DAT file as input.D d. Set the process name to identify to be the project name and> PROJLIBS in order to see it when you do a SHOW USERS.ww`oK 1 PROJSTATUSLThis is used to generate a status report on the current project, by checkingIthe project CMS libraries (setting via PROJLIBS) and files in the project directories.; $ PROJSTATUS [since-date] [before-date] [project]EThis assumes that you have already set up a project with the SET_PROJ8command, and that the logical name PROJ_NAME is defined.2 Tools/This uses some nonstandard tools, listed below.I * CMSSTATUS to generate report on the project CMS libraries.I * MARKREP to report on usage based on PROJ_LOG file. I * NOTES to list new notes from project NOTES conference.F * PROJLIBS defines ALL project CMS libraries as current.1 * SET_PROJ to define a new project.> * SHOW_PROJ to display major project information. 2 ProcessingK a. Check the input parameters, and see if there is a since and beforeC date to deal with . If either was specified, then use it toG construct a /SINCE or /BEFORE qualifier, otherwise do nothing.E b. Display a heading with project name, and the since or before8 dates, along with the listing from a SHOW_PROJ.J c. If the user entered a project name as the 3rd parameter, then set it up.H d. First ensure that a project is defined (logical PROJ_NAME has aH value). If it does not, run SET_PROJ. Then if there is still no! p roject defined, return.I e. Use the PROJLIBS tool to define all of the project CMS libraries> as the current one, and then generate summary report.H f. Generate a directory listing for the project disk, of the files. created during the period of interestJ g. If the file SYS$SYSTEM:NOTES$MAIN.EXE exists, then can generate aI NOTES conference listing for the project NOTES conference, basedA on the dates that were specified for this status report.G h. If there is a PROJ_LOG or PROJ_DISK:[DATA]USAGE.LOG file, thenE generate a usage report from the file using the MARKREP toolwwzM 1 PRT_NOTELTool that allows you to specify a /NOTE and /NAME parameter at the same timefor printing out a job.? $ PRT_NOTE "note and name string" [print-parameters]" 2 ExamplesKThe following prints out all of the *.COM files and labels the job with the/NOTES and job NAME of "Don Amby's *.COM Files".2 $ PRT_NOTE "Don Amby's *.COM Files" *.COM 2 Processingww{O 1 REALDIRIChange the default directory to be the REAL physical device and directory%(not whatever the logical device is). REALDIR 2 Processing a. InitializationK 1. Define all of the local symbols, that will essentially be usedB as constants, variables, and DCL commands within this procedure. b. Main ProcessingB 1. Define the CONTROL/Y, and error conditional handling.D 2. Parse out the device and directory spec for the currentJ default and determine the REAL physical device and directory.E 3. Set the REAL device/directory to be the current default,* display it, and go to return. c. Error Processing7 * Handle ERROR condition, then go to return.> * Handle SEVERE error condition, then go to return.; * Handle CONTROL_Y condition, then go to return.F * Handle abnormal end of file on READ condition, then go to return.< * Handle READ ERROR condition, then go to return. d. Return ProcessingF Close any files that were opened (via OPEN), delete temporary? files, restore verification, and EXIT with the currentI 'ret_status' value, (.or. with 'ret_mask' to disable VMS message display).wwQ 1 REMDISKJDefines a remote DECnet access specification for a device, to allow you toIlocally reference (with a logical name) directories and files on a remotenode./ $ REMDISK log_name rem_node rem_diskJOptional parameters are indicated by square brackets [optional-parm]. Null5parameters on the command line are indicated by a "". 2 ParametersJThe following are the parameters that can be included on the command line,!in the order of their appearance. I log_name Logical name to be defined (REM$DIR is default).H rem_node Node name (with/without "::") of remote system.< rem_disk Disk specfication on remote system.KYou may enter a question mark (?) as the first parameter, and you be placedKinto HELP (from the toolkit help library for the tool. You may also respondJto any of the prompts with a question mark (?) and you will be placed into%help for that parameter of this tool. 3 log_nameCThis is a logical name that will be defined to be the DECnet remotedirectory specification. 3 rem_nodeBThis is the DECnet node name of the remote system that you want toaccess. 3 rem_diskEDisk specification that is to be referenced on the remote system. The:default is the same as the current default on this system. 2 Tools Used/LOGIN To define remote username and password.KThe following are the tool-specific and user-general logical names that areused by this tool.:  REMDISK_DEBUG "TRUE" runs this in DEBUG mode.A REMDISK_VERIFY "TRUE" runs this with verification on.CIn addition, the following toolkit-specific logical names are used.= AMBY_MODE "EXPERT" means user wants expert mode 2 Processing a. InitializationH 1. Get the input parameters into local symbols, and save p1 asE "parm1" parameter independent check for a question mark.K 2. Define all of the local symbols, that will essentially be usedB as constants, variables, and DCL commands within this procedure.? 3. Get the values of the logical names REMDISK_DEBUG,F REMDISK_VERIFY, AMBY_MODE, USER$EDIT, and USER$PRINT into+ local symbols for later usage.B 4. Define the CONTROL/Y, and error conditional handling.I 5. Check the values from the various logicals, and define local+ symbols to appropriate values.  b. Parameter ProcessingJ 1. Check for a question mark (?) as the first parameter. If thisK is the case reference the Toolkit help library (AMBY_HLB), andK display the help for this tool, leaving the user in HELP. ThisK is so that they may check out any subtopics before proceeding.H 2. Define all local symbols that are used for prompt messages,: and error messages related to each parameter. 3. log_nameK  Check to see if the 'log_name' was passed on the command line.@ If it was do nothing. If not, and this is being runC interactively, then prompt the user for an 'log_name'.I a) If the user did not specify and "log_name", then use the4 default, defined by "def_log_name". 4. rem_nodeH Check to see that the user passed in a remote name name. IfI so, proceed on. If not, and this is interactive, then prompt the user for one.I a) Check to see if an 'rem_node' is defined. If not, set anJ error return status code, output an error message, and go' to the return section. 5. rem_diskK Check to see if the 'rem_disk' was passed on the command line.@ If it was do nothing. If not, and this is being runC interactively, then prompt the user for an 'rem_disk'.I a) If the user did not specify and "rem_disk", then use the4 default, defined by "def_rem_disk". c. Main ProcessingJ 1. See if the symbols USERNAME and PASSWORD are defined. If not,C then use LOGIN tool to get them for the remote system. d. Error Processing7 * Handle ERROR condition, then go to return.> * Handle SEVERE error condition, then go to return.; * Handle CONTROL_Y condition, then go to return.F * Handle abnormal end of file on READ condition, then go to return.< * Handle READ ERROR condition, then go to return. e. Return ProcessingF Close any files that were opened (via OPEN), delete temporary? files, restore verification, and EXIT with the currentI 'ret_status' value, (.or. with 'ret_mask' to disable VMS message display).ww ( space except for the four lines in the heading. However, It9 like the technique shown in 55.11, and with a littled; extending, I came up with the following to do the samen> regardless of what date/time format the user chooses. The@ "library guys" (as I call the 'guys' at VMS Engineering whoB maintain the RTLs and SORT) may not have intended for SORT to6 be used this way, but it surely does a nice job!  I5 Thanks to Erik Husby and Allan Wood! Good stuff! DS1 REMDOLRuns DCL commands on a remote node as a network process. This can be used toLrun NON-INTERACTIVE commands on a remote node without actually logging in toit. $ REMDO node [RESUME]ww# WU1 SBO_DO?Executes a command on one (or all) of the SBO VAXcluster nodes. $ SBO_DO node::commandFWhere 'node' can be any one of ENG1, ENG2, ENG3, ENG4, CONDOR, AVIARY,IOSPREY, or * if you want the command run on each node. For all nodes this$uses the logical name SBO$ALL_NODES. 2 SymbolsJThis assumes that the global (or local) symbols USERNAME and PASSWORD haveFalready been defined to be the username and password for accessing theother systems. 2 Examples$ SBO_DO ENG4::SHOW USERS$ SBO_DO *::SHOW SYSTEM$ SBO_DO *::SHOW QUEUE /ALLww VW 1 SETKITSKSets up all of the toolkits whose directories are listed in the input file.<This essentially runs the SETUP.COM files in each directory. $ SETKITS data-fileJ1. Use the logical name DCL_TRACE to determine whether or not to output aFmessage with the filename and parameters. This is to be able to get an@execution trace by the use of the command DEFINE DCL_TRACE TRUE.ww&X 1 SETROOTKThis is a simple tool that may be used to simplify the definition of rooted logical names to act as devices.8 $ SETROOT [logical [directory [qualifiers]]]:Parameters are optional, as defaults are defined for them. * logical - DEF$ROOT. * directory - current default directory 2 ExamplesKDefine the rooted logical name (THIS_DISK) for a disk that is rooted at thecurrent default directory. $ SETROOT THIS_DISKK'Define the rooted logical name (THIS_DISK) for a disk that is rooted at thedirectory DISK:[DIR].' $ SETROOT THIS_DISK DISK:[DIR]KDefine the rooted logical name (THIS_DISK) for a disk that is rooted at the)directory DISK:[DIR], and have it logged.- $ SETROOT THIS_DISK DISK:[DIR] /LOGD1. Define the logical device HOME$ROOT to be base on your SYS$LOGIN directory.( $ SETROOT HOME$ROOT SYS$LOGIN 2 Processing> a. Define the CONTROL/Y, and error conditional handling.D b. Check for input parameters. If not found, then just use the default values.I c. Parse out the complete device (to physical device) and directory) specification of the "dir_spec".( d. define the rooted logical name.' e. Error and interrrupt handlers.; * Handle CONTROL_Y condition, then go to return.7 * Handle ERROR condition, then go to return.ww)2 PARSE.COM*ISimple interface for running the F$PARSE() lexical function. You must useo-the AMBYUTILS command to define this utility.aE $ PARSE file-spec default-spec related-spec field parse-typevFFor information on the items that can be used with the F$PARSE lexicalKfunction, see the HELP LEXICAL F$PARSE topic or the VAX/VMS DCL Dictionary.l 3 ProcessingF a. Check to see if user specified a file_spec. If not, then just exittG b. Output result of just pas*sing all parameters on to the F$PARSEr lexical.F c. If the user omitted the 'field' and 'parse-type', then output5 the result of F$PARSE for all cases of them. 2 PROD_SET.COMHThis is Don Amby's SET_PROD tool tailoring procedure, that is invoked be?defining the logical name PROD_SET to be the following command.i0 $ DEFINE PROD_SET "@AMBY_EXE:PROD_SET" 3 Logicals7The following logical names are used by this procedure.a * LOGIN_DISK + * PROD_DEV  * PROD_DISK i * PROD_LOCAL i * PROD_NAME d * PROD_TOP r * PROJ_DEV A * PROJ_LOCAL  * PROJ_NAME t3 Filesg>The following files are referenced and used by this procedure.1 * SET_PROC_NAME.COM - to set process name.d * AMBY_TOP:SETLOGS.COMi * AMBY_TOP:SETSYMBS.COM 3 ProcessingF 1. Use the logical name DCL_TRACE to determi ,ne whether or not toI output a message with the filename and parameters. This is to be H able to get an execution trace by the use of the command DEFINE DCL_TRACE TRUE.- 2. Set up interrupt and error handlers. H 3. If the logical CONTEXT_LOCAL is defined, then let's assume thatA we set up a product using the RSLIB tool (not SET_PROD).aI 4. Check to be sure that a product is defined. If the logical namesuE PROD_NAME or PROD_DISK is u-ndefined, just bypass everything.iG 5. Check to see if the logical name PROD_LOCAL is defined. If so,wI it indicates a project based on a directory other than the usersl SYS$LOGIN directory. 3 6. Use SET_PROC_NAME.COM to set process name.m3 7. Now run the files AMBY_TOP:SETLOGS.COM andxE AMBY_TOP:SETSYMBS.COM, in order to be sure of what tools areo defined.e2 PROJ_SET.COMGThis is the SET_PROJ tailoring procedure that is used by D. Am.by. It istJused by defining the logical name PROJ_SET to be the DCL command to invokeit.m0 $ DEFINE PROJ_SET "@AMBY_EXE:PROJ_SET" 3 Logicals7The following logical names are used by this procedure.  * LOGIN_DISKn * PROJ_NAME  * PROJ_TOP i * PROJ_DEV I * PROJ_DISK b * PROJ_LOCAL 3 Files >The following files are referenced and used by this procedure.1 * SET_PROC_NAME.COM - to seVt process name. @ * AMBY_TOP:SETLOGS.COM - defines D. Amby's logical names.B * AMBY_TOP:SETSYMBS.COM - defines D. Amby's global symbols. 3 ProcessingF 1. Use the logical name DCL_TRACE to determine whether or not toI output a message with the filename and parameters. This is to beH able to get an execution trace by the use of the command DEFINE DCL_TRACE TRUE.- 2. Set up interrupt and error handlers.A 3. First be sure that a pr0@\1 STDIOHShell that can be used as an interface to running a DCL command. This isCmainly used as a convenient way to log the output of a DCL command.3 $ STDIO infile outfile errfile dcl-command 2 ParametersE * infile Standard input file (terminal if undefined).F * outfile Standard output file (terminal if undefined).E * errfile Standard error file (terminal if undefined)., * dcl-command DCL command to run.ww2]` 1 TEXLISMMSLQuick and dirty tool that will read a TeX listing file and from it create anBMMS segment that is the dependency list for building the document.( $ TEXLISMMS lis-file out-fileJThe default output file is the same name as the input listing file, with afile type of .MMS_FILES.2 Tools/Some non-standards tools are used by this tool.0 * GREP to search for regular patterns.9 * WORDS to put each word of file on single line. 3 2 ProcessingJ a. Check out the parameters, and using defaults for input and outputI files determine the actual file specifications. Check also to beJ sure an input listing file was specified, and that it does really$ exist. If not, just return.F b. Use the GREP tool to search for lines with ";[1-9][0-9]*)" inF them. These represent files that are included by the main TeX file.F c. Edit the output from the GREP, SORT, and filter to create the= output file which is an MMS dependency list segment.ww5Fb1 TIMERMThis is a very simple tool that allows you to check out the (wall clock) time#that it takes to run a DCL command.$ $ TIMER dcl-command-string 2 UtilitiesJThis uses the following additional utilities, which must be located in thesame directory as this file.J * DCL.COM - to redirect the output of a DCL command to NL:, to that no output is generated.G * SECONDSTIME.COM - to calculate the elapsed time from the total  number of seconds. * YRSEC.COMww7 d 1 TOOLCMSMDCL command procedure that will insert all of the source files for a standard&tool into the current DEC/CMS library.C $ TOOLCMS name "description of tool" cre-quals ins-quals 2 Parameters Parm Function7 ---- -------------------------------------- p1 Tool name.- p2 Tool description (for group)8 p3 Qualifiers for all CMS CREATE ELEMENTs.8 p4 Qualifiers for all CMS INSERT ELEMENTs. 2 Processing6 a. If there is a tool_CMS.COM file, then run it.1 b. Create DEC/CMS group for all tool files.E c. Create the elements for tool files, and insert each into the overall tool group. 2 Subroutines 1. ADD_ELE 2 ExamplesAThe following are some simple examples of how to use this tool...ww 9g 1 TOOLMOVEMThis tool can be used to generate a DCL command procedure that can be used toMmove a tool from one CMS library to another. It will create the necessary CMSLcommands to copy all elements for a tool (defined by the group name), createFthe group in the new library and insert all tool files into the group.E $ TOOLMOVE tool_group out_file [cms_library [cms_class]] 2 ParametersKYou may enter a question mark (?) as the first parameter, and you be pla:cedKinto HELP (from the toolkit help library for the tool. You may also respondJto any of the prompts with a question mark (?) and you will be placed into%help for that parameter of this tool. 3 tool_groupHThis must be the name of a CMS group that defines the tool that is to bemoved. It must already exist! 3 out_fileGThe output from this tool is a DCL command procedure with the necessaryGCMS commands to load everything into the library. This is the file namefor it.)If omitted;, then TOOLMOVE.OUT is assumed. 3 cms_libraryAThis is an optional directory specification for a CMS library. IfAomitted, then the current library (as defined by the logical nameCMS$LIB) is used. 3 cms_classGThis is an optional name for a CMS class in which to place each element7that is created (or updated) based on the 'tool_group'.2 Tools0The following tools are necessary for this tool. * ADDTOLINE * CMS 2 LogicalsKThe following are the tool-specifi <c and user-general logical names that areused by this tool.; TOOLMOVE_DEBUG "TRUE" runs this in DEBUG mode.B TOOLMOVE_VERIFY "TRUE" runs this with verification on.D USER$EDIT DCL command string to run a text editor.F SYS$SCRATCH Directory for all temporary files created.CIn addition, the following toolkit-specific logical names are used.E AMBY_EXE Points to Toolkit executable files directory.= AMBY_MODE = "EXPERT" means user wants expert mode 2 Processing a. InitializationH 1. Get the input parameters into local symbols, and save p1 asE "parm1" parameter independent check for a question mark.K 2. Define all of the local symbols, that will essentially be usedB as constants, variables, and DCL commands within this procedure.H 3. Define local symbols that represent temporary files used byK this tool. >They are to be created (and deleted before EXIT) in6 the user scratch directory (SYS$SCRATCH). * com_file * edt_file * elements_file * group_file@ 4. Get the values of the logical names TOOLMOVE_DEBUG,G TOOLMOVE_VERIFY, AMBY_MODE, USER$EDIT, and USER$PRINT into+ local symbols for later usage.B 5. Define the CONTROL/Y, and error conditional handling.I ? 6. Check the values from the various logicals, and define local+ symbols to appropriate values. b. Parameter ProcessingJ 1. Check for a question mark (?) as the first parameter. If thisK is the case reference the Toolkit help library (AMBY_HLB), andK display the help for this tool, leaving the user in HELP. ThisK is so that they may check out any subtopics before proceeding.H 2. Define all local symbols that@ are used for prompt messages,: and error messages related to each parameter. 3. tool_group@ Check to see that the user passed in a name for the? tool_group. If so, proceed on. If not, and this is7 interactive, then prompt the user for one.I a) Check to see if an 'tool_group' is defined. If not, thenF we cannot really continue. We MUST have a group name. 4. out_fileK C Aheck to see if the 'out_file' was passed on the command line.@ If it was do nothing. If not, and this is being runC interactively, then prompt the user for an 'out_file'.I a) If the user did not specify an output file then just use. the default output file name. 5. cms_libraryH Check to see if the 'cms_library' was passed on the commandF line. If it was do nothing. If not, and this is being runF B interactively, then prompt the user for an 'cms_library'.I a) If the user did not specify an output file then just use. the default output file name. 6. cms_classK Check to see that the user passed in a name for the cms_class.E If so, proceed on. If not, and this is interactive, then% prompt the user for one. c. Main ProcessingK 1. If a CMS library (other than CMS$LIB) is Cto be set up, then do it.F 2. Process the 'tool_group' so as to be sure it really is anC existing one in the CMS library that has been defined.3 3. If the group is valid we can continue.H 4. Use the 'tool_group' to generate a listing of the elements,H which is then used to create the commands to copy them from the old library.J 5. Do a CMS SHOW ELEMENT of the elements in the tool group usingD D the /FORMAT qualier in order to have the output commandK procedure insert each element into the tool group (as it is in' the original CMS library).I 6. If the user specified a 'cms_class', then we need to add the; necessary CMS commands to the DCL output file.K 7. All we need do now is add the commands to gracefully exit from+ CMS and the command procedure. d. Error Processing. * No toolE group name was specified./ * Bad tool group name was specified.7 * Handle ERROR condition, then go to return.> * Handle SEVERE error condition, then go to return.; * Handle CONTROL_Y condition, then go to return.F * Handle abnormal end of file on READ condition, then go to return.< * Handle READ ERROR condition, then go to return. e. Return ProcessingF Close any files that were opened (via OPEN), delete temporary? files, restore verification, and EXIT with the currentI 'ret_status' value, (.or. with 'ret_mask' to disable VMS message display).wwGi 1 TOOLKITSIThis is a simple tool that can be used to help document what toolkits aredefined at login time. $ TOOLKITS [data-file]IThis is used mainly to quickly document what toolkits have been set up at*LOGIN time, and what versions they are at. 2 Parameters a. data-fileD This is an optional file that contains a listing of toolkitE directories to be used. If omitted, then the default file is+ SITE_SPECIFIC:INTERACTIVEH.SETKITS.2 ToolsKThe following is a list of non-standard tools that are used by this utilityF * SETKIT - to set up a single toolkit (given a directory name).= * SETKITS - to set up list of toolkits in a data file. 2 ProcessingJ a. Display a date and time stamp and heading to output from this, so; that reader has some idea just what this stuff is.K b. Display the versions of all that is possible, from the DCL command line. I * VMS * CMS * MMS * SCAD c. Check to see if user supplied an input data file of toolkit directories.K * If the user supplied a data file, then just use it as input to" the the SETKITS tool.D * If the user did not supply a data file, then set up the+ following individual toolkits.# a) AMBY_ROOT:[000000]% b) AMBY_ROOT:[RUN.EDIT]G Then Juse SITE_SPECIFIC:INTERACTIVE.SETKITS as input to the SETKITS tool.2 Author Donald E. Amby& Harnischfeger Engineers, Inc.; P.O. Box 1512 or 13400 Bishops Lane= Milwaukee, WI 53201 Brookfield, WI 53005) 414-797-6713, 414-797-6533 (FAX) DECUServe,DCS: AMBY# CompuServe: 73547,3256. Internet: amby@eisner.decus.org8 UUCP: ...uunet!marque.mu.edu!amby!donC ...{decwrl,nosc,crash}!simpact!eisner!ambyww `k 1 USELESSDUses the files USELESS.LOGICALS and USELESS.SYMBOLS in the directoryDSITE_SPECIFIC to delete unecessary logical names and global symbols. $ USELESS-This makes use of the DELOG and DESYMB tools.wwM Xn1 WRKJThis tool can be used to set your context in order to work on a particularLISEE defined product. This will set your default directory to an appropriateMsearch list, define an SCA library (if appropriate), and define LSEDIT search directories. $ WRK [wrk-type] 2 Parameters 1. wrk-typeD This allows you to pass in the following keywords that willK establish different search lists. You may use any of the following valNues. - DEVE Uses PROD_DEV:[WRK],COMMON_SRC for search list (default) - DISK= Uses PROD_DISK:[WRK],COMMON_SRC for search list. - LOCAL> Uses PROD_LOCAL:[WRK],COMMON_SRC for search list. 2 LogicalsDThis tool assumes that the following logical names have already beenHdefined (by the SET_PROJ and SET_PROD tools for setting up a project and product).9 * COMMON_ROOT root of Don Amby's COMMON tooOls.B * PROD_DEV product development device (search list).. * PROD_DISK root of product area.& * PROD_NAME product name.9 * PROD_LOCAL root of local product work area.BIn addition, the following logical names are defined by this tool.D * LSE$READ_ONLY_DIRECTORY read only directory for LSE to use.> * LSE$SOURCE read/write directory for LSE.> * SCA$LIBRARY Source Code Analyzer library.PF * WRK Search list for all work directories. 2 ExamplesASet up the development directory path, by specifying it as "DEV". $ WRK DEV PATH_LIST:[WRK] = PROD_LOCAL:[WRK] = PROD_DISK:[WRK] = COMMON_SRC"Set up the local development path. $ WRK LOCAL PATH_LIST:[WRK] = PROD_LOCAL:[WRK] = COMMON_SRC.Set up to work on the shared development area.Q $ WRK DISK PATH_LIST:[WRK] = PROD_DISK:[WRK] = COMMON_SRCEThe following is an example of what happens if you pass in an invalid parameter. $ WRK XXX5 %WRK-F-BADWRKTYP, invalid type XXX passed inFThe following is a result of using this tool after Don Amby's PERSONAL.project and AMBY product were already defined. $ WRK , %SCA-S-LIB, your SCA Libraries are ) %SCA-S-LIB, PROD_DISRK:[SCA]+ %SCA-S-LIB, COMMON_ROOT:[SCA] 3 "LSE$SOURCE" = "[]" (LNM$PROCESS_TABLE)! = "PROD_DISK:[]"# = "COMMON_ROOT:[]" = "CMS$LIB"= 1 "CMS$LIB" = "PROD_DISK:[CMS]" (LNM$PROCESS_TABLE)/ = "PROJ_DISK:[DEV.COMMON.CMS]"/ = "ISEE$DISK:[DEV.COMMON.CMS]" L "LSE$READ_ONLY_DIRECTORY" = "COMMON_ROOT:[]" (LNM$PROCESS_TABLE)  PATSH_LIST:[WRK] = PROD_DISK:[WRK] = COMMON_SRC 2 ProcessingE 1. Get parameters, and define default values for when none were specified.I 2. Define local symbols that will function as essentially constants within this procedure.1 3. Define the interrupt and error handlers.H 4. First let's make sure that there is an ISEE product defined, byC the local name PROD_NAME having a value. If not, we cannot0 cTontinue and must treat it as an error.G 5. Check the type of WRK setup to do, which is based on the firstK parameter. The default is DEV if none is given. The only allowableK values are "", "DEV", "DISK", and "LOCAL". If it is anything else,- we output an error message and exit.E 6. Based on the type of WRK setup, do what is specific to each. - DEV - DISK - LOCALJ 7. Define the logical name WRK, which Uis based on PROD_DEV:[WRK] and COMMON_SRC.I 8. Determine if it is appropriate to define an SCA library. This isH only appropriate if PROD_LOCAL:[SCA] and/or PROD_DISK:[SCA] areI SCA library directories. Otherwise there is to be no SCA library defined.E 9. Define the necessary LSEDIT logical names in order to set upE access to the product working directories and CMS libraries. a. LSE$SOURCE$ b. LSE$READ_ONLY_DIRECTORYwwWoject is really defined, which isH indicated by the logical names PROJ_NAME and PROJ_DISK having aF value. If either is not defined, then just bypass everything.6 4. Set default directory to be the project disk.3 5. Use SET_PROC_NAME.COM to set process name.3 6. Now run the files AMBY_TOP:SETLOGS.COM andDE AMBY_TOP:SETSYMBS.COM, in order to be sure of what tools are defined.T2 SECONDSTIME.COMBKThis utility can be used to convert a Xnumber of seconds to a VMS delta timep@string as the value of a global symbol whose name you passed in.6 $ @AMBY_EXE:SECONDSTIME symbol number-seconds 3 ExamplesBThe following are some simple examples of how to use this utility.E * Convert 14678 seconds to delta time format, returning as the+ value of global symbol DELTA_TIME.O9 $ @AMBY_EXE:SECONDSTIME DELTA_TIME 14678 ) $ SHOW SYMBOL DELTA_TIME+ DELTA_TIME == "Y04:04:38" 3 ProcessingG a. Make sure the user passed in the global symbol and seconds. Ifb% not, then just exit for now. G b. Convert the seconds to an integer and then divide it up to get A the invidual components (seconds, minutes, hours, days).eE c. Use the components to build up the correct delta format timel spec.C d. Return the resultant delta time string as the named global  symbol.2 SET_PROC_NAME.COM DThis will chZange a process name to be one based on the current RSLIB$context (Product, Context, Product). 3 Logicals7The following logical names are used by this procedure.o; * PROJ_NAME - name of current RSLIB defined project.r> * CONTEXT_NAME - name of current RSLIB defined context.; * PROD_NAME - name of current RSLIB defined product. 3 ProcessingF 1. Use the logical name DCL_TRACE to determine whether or not toI output a message with the filename and parame[ters. This is to be H able to get an execution trace by the use of the command DEFINE DCL_TRACE TRUE.I 2. Set the process name based on the Product, Context, and Project.O2 SIG_TAPE_UPDATE.COM*IThis can be used to update everything that is to be placed on the saveset*Jfor the DECUS Languages & Tools SIG tape. This is mainly intended as a wayKto ensure that everything that needs to be built is up to date in all of my software products (Don Amby)$ $ @AMBY\_EXE:SIG_TAPE_UPDATE 3 Logicals2The following logical names are used by this tool.3 Tools HThe following is a list of some non-standard tools that are used in this procedure.4 * SET_PROJ - To set the current ISEE project.4 * SET_PROD - To set the current ISEE product.4 * TOOLKITS - to set up all standard toolkits.A * WRK - To set default directory for working on product. 3 FilesM)The following files are used by this toolu * SIG_TAPE_UP]DATE.SETKITSE This is a list of toolkit directories that are to be used by I this procedure. This also defines where the tools that are builta are to be 'installed'. 3 ProcessingE 1. Set the current project to be the PERSONAL project, which issE what I (Don Amby) use to update everything for the SIG tape.rI 2. Set up every toolkit that needs to be defined prior to doing anye updating.F 3. Now, I need to set up each product th^at I am releasing to theH tape and rebuild it by running the SIG_TAPE.COM file that is inI each work directory. Since this is a bit much to do, we just useTC an internal subroutine and CALL it to do the work for each  product listed. a. COMMON  b. AMBYT c. BASETOOLS d. CMTOOLS e. DECUSTOOLS f. DOCTOOLSr g. EDITs h. LT_SIGh i. NOTES j. R_SLIB k. SITEe l. TESTTOOLS m. TEXTOOLSI 4. Okay, now that everything has been built, then set up all of it,H5 by running the SETUP.COM in AMBY_ROOT:[RUN]. G 5. Set up every toolkit that was defined at the beginning of thisr; in order to document what are the latest versions.o 3 Subroutineso?The following are internal subroutines that are CALLed in this.l4 updateF 1. Check to see if the product name was passed. `If not just exit with error status.mG 2. Output a message to indicate what product is to be updated andpD set up that product. Then use the WRK tool to establish the+ default directory to do update in.fB 3. Run the setup command, defined as local symbol 'set_cmd'.G 4. If there was a command procedure file name supplied, then justfA run it, otherwise we need to check for how to update thel product._: - Update by just ruanning with SIG_TAPE.COM file< - we can build it using BUILD.COM and install via INSTALL.COM.r* - build this by using BUILD.COM. - INSTALL this by using INSTALL.COMG - We can update this product using the ALL.COM in the commoniC area defined as part of default directory search list.s 2 STDIO.COM*HShell that can be used as an interface to running a DCL command. This isCmainly used as a convenient way to log the outpubt of a DCL command. 3 $ STDIO infile outfile errfile dcl-commandE 3 ParametersE * infile Standard input file (terminal if undefined).lF * outfile Standard output file (terminal if undefined).E * errfile Standard error file (terminal if undefined). , * dcl-command DCL command to run. 2 TIMER.COM*HThis is a very simple tool that allows you to check out the (wall clock)(time that it takes to run a DCL command.$ c $ TIMER dcl-command-string 3 UtilitiesdFThis uses the following additional utilities, which must be located in the same directory as this file.E * DCL.COM - to redirect the output of a DCL command to NL:, toi% that no output is generated.rG * SECONDSTIME.COM - to calculate the elapsed time from the totaln number of seconds.k * YRSEC.COM2 TOOLCMS.COM*DDCL command procedure that will insert all of the source files for a/standard tool into tdhe current DEC/CMS library. C $ TOOLCMS name "description of tool" cre-quals ins-qualso 3 Parameters Parm Function 7 ---- --------------------------------------  p1 Tool name.c- p2 Tool description (for group)l8 p3 Qualifiers for all CMS CREATE ELEMENTs.8 p4 Qualifiers for all CMS INSERT ELEMENTs. 3 Processing6 a. If there is a tool_CMS.COM file, then run it.1 b. Create DEC/CMS group for hall tool files.eE c. Create the elements for tool files, and insert each into the  overall tool group. 3 Subroutines 2. ADD_ELEk 3 ExamplesAThe following are some simple examples of how to use this tool... 2 TOOLMOVE.COM*sJThis tool can be used to generate a DCL command procedure that can be usedBto move a tool from one CMS library to another. It will create theFnecessary CMS commands to copy all elements for a tool (defined by theJgroup name), create the group inu7 Only if TEX_INPUTS is not already defined.uG c. Define all DECUS toolkit names so as to reference objects that - are in the PROD_DEV:[WRK] directory.. * decus$exe * decus$datan * decus$help  * amby_exec * amby_data * amby_help * amby_hlbi * amby_logE * amby_mode * amby_rootE d. See if the PROD_DEV:[WRK]SETSYMBS.COM filfo * file_attributes * getdviS * getjpi  * getsyia * internetr * markreps * parse * stdio * timer * toolcms * toolmoveeww*32EDTtEMP . Parameters . Reference . WarningEVERYLIB. Tools. Files . Processingw EVERYLIB_INFOoFILES FILE_ATTRIBUTESg . Parametersn . Reference . ProcessingoGETDVI . ProcessinggGETJPI . Parametersy . Reference . ProcessingESHOW-QUEUE-BATCH.LOGJ $ show queue/full/device /out=NODE_SPECIFIC:SHOW-QUEUE-DEVICE.LOG2 AuthorDon Amby, 30-Oct-1991.ww. hlb_lib_ . Tools_Usedn . Logicals . . HLBQUALS_DEBUG. . HLBQUALS_VERIFYP. . AMBY_MODEe. . USER$EDIT. . SYS$SCRATCHi . Examplesx . Author HLPE INSTALL_EDTt . parameters . . in_files . . kit_dirb. . out_file . Logicalsi. . INSTALL_EDT_DEBUGC. . INSTALL_EDT_VERIFY. . PROD_NAMEe. . AMBY_MODEr. . USER$E i the new library and insert all tool filesinto the group. E $ TOOLMOVE tool_group out_file [cms_library [cms_class]]n 3 ParametersDYou may enter a question mark (?) as the first parameter, and you beEplaced into HELP (from the toolkit help library for the tool. You may Halso respond to any of the prompts with a question mark (?) and you will4be placed into help for that parameter of this tool. 4 tool_groupEThis must be the name of a CMS group that defines the tool that is tjo be moved. It must already exist! 4 out_fileGThe output from this tool is a DCL command procedure with the necessary GCMS commands to load everything into the library. This is the file namedfor it.o)If omitted, then TOOLMOVE.OUT is assumed.n 4 cms_librarytAThis is an optional directory specification for a CMS library. IfrAomitted, then the current library (as defined by the logical name CMS$LIB) is used.s 4 cms_class GThis is an optional name for a CMS class in which to place ekach element 7that is created (or updated) based on the 'tool_group'.n3 Toolsa0The following tools are necessary for this tool. * ADDTOLINE * CMS 3 LogicalsGThe following are the tool-specific and user-general logical names thatdare used by this tool.; TOOLMOVE_DEBUG "TRUE" runs this in DEBUG mode.nB TOOLMOVE_VERIFY "TRUE" runs this with verification on.D USER$EDIT DCL command string to run a text editor.F SYS$SCRATlCH Directory for all temporary files created.CIn addition, the following toolkit-specific logical names are used. E AMBY_EXE Points to Toolkit executable files directory.= AMBY_MODE "EXPERT" means user wants expert model 3 Processing a. InitializationeH 1. Get the input parameters into local symbols, and save p1 asE "parm1" parameter independent check for a question mark.tF 2. Define all of the local symbols, thatm will essentially beG used as constants, variables, and DCL commands within this  procedure.lH 3. Define local symbols that represent temporary files used byH this tool. They are to be created (and deleted before EXIT)9 in the user scratch directory (SYS$SCRATCH).l * com_fileh * edt_file' * elements_file * group_fileo@ 4. Get the values of the logical nnames TOOLMOVE_DEBUG,G TOOLMOVE_VERIFY, AMBY_MODE, USER$EDIT, and USER$PRINT intor+ local symbols for later usage. B 5. Define the CONTROL/Y, and error conditional handling.I 6. Check the values from the various logicals, and define localn+ symbols to appropriate values.i b. Parameter Processing E 1. Check for a question mark (?) as the first parameter. If @ this is the case reference the Toolkit help lib oraryH (AMBY_HLB), and display the help for this tool, leaving theA user in HELP. This is so that they may check out anyo) subtopics before proceeding. H 2. Define all local symbols that are used for prompt messages,: and error messages related to each parameter. 3. tool_groupL@ Check to see that the user passed in a name for the? tool_group. If so, proceed on. If not, and this isp7 int peractive, then prompt the user for one.uI a) Check to see if an 'tool_group' is defined. If not, then F we cannot really continue. We MUST have a group name. 4. out_filemE Check to see if the 'out_file' was passed on the command$F line. If it was do nothing. If not, and this is being runC interactively, then prompt the user for an 'out_file'.PI a) If the user did not specify an output file then jusqt useT. the default output file name. 5. cms_libraryH Check to see if the 'cms_library' was passed on the commandF line. If it was do nothing. If not, and this is being runF interactively, then prompt the user for an 'cms_library'.I a) If the user did not specify an output file then just usee. the default output file name. 6. cms_class@ Check to see that the user passred in a name for the> cms_class. If so, proceed on. If not, and this is7 interactive, then prompt the user for one.r c. Main ProcessingH 1. If a CMS library (other than CMS$LIB) is to be set up, then do it.cF 2. Process the 'tool_group' so as to be sure it really is anC existing one in the CMS library that has been defined.i3 3. If the group is valid we can continue.aH 4. Use the 'tool_g sroup' to generate a listing of the elements,H which is then used to create the commands to copy them from the old library. D 5. Do a CMS SHOW ELEMENT of the elements in the tool groupB using the /FORMAT qualier in order to have the outputF command procedure insert each element into the tool group4 (as it is in the original CMS library).I 6. If the user specified a 'cms_class', then we need to add thes; t necessary CMS commands to the DCL output file.F 7. All we need do now is add the commands to gracefully exit0 from CMS and the command procedure. d. Error Processingi. * No tool group name was specified./ * Bad tool group name was specified.i7 * Handle ERROR condition, then go to return.P> * Handle SEVERE error condition, then go to return.; * Handle CONTROL_Y condition, then go to return.eF  * Handle abnormal end of file on READ condition, then go to return.< * Handle READ ERROR condition, then go to return. e. Return ProcessingF Close any files that were opened (via OPEN), delete temporary? files, restore verification, and EXIT with the currentkI 'ret_status' value, (.or. with 'ret_mask' to disable VMS message  display).2 TOOLSLIB.COMJThis is a subroutine library of common DCL routines for use by ave can be found, andn@ then run it, in order to be sure to have any new symbol definitions.C: e. Restore the original default directory, and exit. 3 DC_RSLIBEPerforms the overall setup for working on the DC_RSLIB product of the PERSONAL project.o 4 ParametersNone are used. 4 ProcessingA a. Define the various PROJ_* logical names to mimic the HEIi/ Reusable Software Library definitions.D b. Set the directory context to be such that I cwan immediately1 begin working on the DC_RSLIB documents.i 3 DOCTOOLSEPerforms the overall setup for working on the DOCTOOLS product of thesPERSONAL project. 4 ParametersNone are used. 4 ProcessingF a. Use the logical name DCL_TRACE to determine whether or not toF output a message with the filename and parameters. This is toD be able to get an execution trace by the use of the command DEFINE DCL_TRACE TRUE. > b. See if there is a test xversion of the DOCTOOLS in theG directory defined by the symbol 'test_dir'. If so set it up soEE that we do not accidentally update the released version withT work in progress.E c. Define all DOCTOOLS toolkit names so as to reference objectst2 that are in the PROD_DEV:[WRK] directory. * doc_datag * doc_did * doc_exe * doc_helpl * doc_hlb * doc_include * doc_temyplate  * amby_data * amby_did  * amby_exe  * amby_help * amby_hlbE * amby_includeE * amby_logl * amby_mode * amby_root * amby_templateE d. See if the PROD_DEV:[WRK]SETSYMBS.COM file can be found, ande@ then run it, in order to be sure to have any new symbol definitions. : e. Restore the original default directory, and exit.z3 EDITHPerforms some necessary setup tasks for working on Don Amby's EDIT toolstoolkit. 4 ParametersNone are used. 4 ProcessingF a. Use the logical name DCL_TRACE to determine whether or not toF output a message with the filename and parameters. This is toD be able to get an execution trace by the use of the command DEFINE DCL_TRACE TRUE.nF b. Define all EDIT toolkit names so as to reference objects that- are in the PROD_DEV:[WRK] directo{ry. * edit_exeE * edit_data * edit_helpE c. See if the PROD_DEV:[WRK]SETSYMBS.COM file can be found, andb@ then run it, in order to be sure to have any new symbol definitions.n: d. Restore the original default directory, and exit.3 SBOsAPerforms the overall setup for working on the AMBY product of thetPERSONAL project for Don Amby. 4 ParametersNone are used. 4 ProcessingF a. Set up other tools that a|re needed for this product, based on/ whether specific logicals are defined.eC b. Invoke the LOGIN tool to get the username and password forp, accessing files on the SBO cluster.D c. Define some logical names that will refer to directories onG the SBO VAXcluster system, which are based on the values given  to the LOGIN tool.t 1. vsp$exe 2. sbo$userdataa 3. sbo$com: d. Restore the original default di}rectory, and exit.3 RSLIBbBPerforms the overall setup for working on the RSLIB product of theEPERSONAL project. This will help to emulate how one can easily set up ;access to it and be ready to do work with a simple command." 4 ParametersNone are used, at this time. 4 ProcessingF 1. Use the logical name DCL_TRACE to determine whether or not toF output a message with the filename and parameters. This is toD be able to get an execution trace by the use of the com ~mand DEFINE DCL_TRACE TRUE.rE 2. See if there is a test version of the RSLIB in the directoryEF defined by the symbol 'test_dir'. If so, we want to set it upA to be sure that we do not update the official version bya mistake.OD 3. See if the PROD_DEV:[SRC]PROJLIB.COM file can be found, and? then use the SETSYMBS routine (in it) on the data file $ RSLIB_ROOT:[DAT]SYMBOLS.DAT> 4. Define some additional logical names that are needed. - out_dir - amby_rslib  - amby_amby- - amby_root = amby_amby,amby_rslibnC 5. Set default directory to be [.SRC] relative to the productc directory.m 3 TESTTOOLSaFPerforms the overall setup for working on the TESTTOOLS product of thePERSONAL project. 4 ParametersNone are used. 4 ProcessingF 1. Use the logical name DCL_TRACE to determine whether or not toF output a message with the filenam e and parameters. This is toD be able to get an execution trace by the use of the command DEFINE DCL_TRACE TRUE.O? 2. See if there is a test version of the TESTTOOLS in thevG directory defined by the symbol 'test_dir'. If so set it up so E that we do not accidentally update the released version withO work in progress.F 3. Define all TEST toolkit names so as to reference objects that- are in the PROD_DEV:[WRK] directory.c ! - test$exet - test$data - test$help - test$hlbt - test$include= - test$template - amby_data - amby_exeN - amby_help - amby_hlbn - amby_include - amby_log, - amby_mode - amby_root - amby_templateE 4. See if the PROD_DEV:[WRK]SETSYMBS.COM file can be found, and-@ then run it, in order to be sure to have any new symbol definitions. : 5. Restore the original default directory, and exit. 3 TEXTOOLSEPerforms the overall setup for working on the TEXTOOLS product of the1PERSONAL project.s 4 ParametersNone are used. 4 ToolkitsEThis will check to see if the logical name tool$HLB is defined (where ?tool is the prefix of a toolkit), and if not attempt to run the 4SETUP.COM file in the top directory for the toolkit.. DECUSTOOLS DECUS provided tools.- DOCTOOLS Documentation tools.w5 TEXTOOLS Tex/LaTeX typesetting tools.i 4 ProcessingF a. Use the logical name DCL_TRACE to determine whether or not toF output a message with the filename and parameters. This is toD be able to get an execution trace by the use of the command DEFINE DCL_TRACE TRUE.rF b. Set up other tools that are needed for this product, based on/ whether specific logicals are defined.u  * LOGIN_DISK * PROJ_NAME  * PROJ_TOP  * PROJ_DEV  * PROJ_DISK  * PROJ_LOCAL 3 Files>The following files are referenced and used by this procedure.1 * SET_PROC_NAME.COM - to set process name.@ * AMBY_TOP:SETLOGS.COM - defines D. Amby's logical names.B * AMBY_TOP:SETSYMBS.COM - defines D. Amby's global symbols. 3 ProcessingF 1. Use the logical name DCL_TRACE to d 1. DECUSTOOLSe6 Only if DECUS$EXE is not already defined. 2. DOCTOOLS A Only if DOC$EXE and DOC_EXE are not already defined.t 3. TEXTOOLSp7 Only if TEX_INPUTS is not already defined. E c. Define some of the TEXTOOLS logical names so as to referenceh: objects that are in the PROD_DEV:[WRK] directory. * tex_exe * tex$help  * tex_help  * amby_data  * amby_exe  * amby_help * amby_hlbI * amby_logi * amby_mode * amby_rootE d. See if the PROD_DEV:[WRK]SETSYMBS.COM file can be found, andy@ then run it, in order to be sure to have any new symbol definitions.S: e. Restore the original default directory, and exit.wwY_EXE:PROD_SET" 3 Logicals7The following logical names are used by this procedure.i * LOGIN_DISK tsing all parameters on to the F$PARSE  lexical.F c. If the user omitted the 'field' and 'parse-type', then output5 the result of F$PARSE for all cases of them. 2 PROD_SET.COMHThis is Don Amby's SET_PROD tool tailoring procedure, that is invoked be?defining the logical name PROD_SET to be the following command.t0 $ DEFINE PROD_SET "@AMBY_EXE:PROD_SET" 3 Logicals7The following logical names are used by this procedure.e * LOGIN_DISK t * PROD_DEV  * PROD_DISK e * PROD_LOCAL s * PROD_NAME g * PROD_TOP u * PROJ_DEV  * PROJ_LOCAL 2 * PROJ_NAME 3 Files>The following files are referenced and used by this procedure.1 * SET_PROC_NAME.COM - to set process name.B * AMBY_TOP:SETLOGS.COM  * AMBY_TOP:SETSYMBS.COM 3 ProcessingF 1. Use the logical name DCL_TRACE to determine whether or not toI output a message with the filename and parameters. This is to beeH able to get an execution trace by the use of the command DEFINE DCL_TRACE TRUE.- 2. Set up interrupt and error handlers.AH 3. If the logical CONTEXT_LOCAL is defined, then let's assume thatA we set up a product using the RSLIB tool (not SET_PROD).aI 4. Check to be sure that a product is defined. If the logical namesiE PROD_NAME or PROD_DISK is undefined, just bypass everything.lG 5. Check to see if the logical name PROD_LOCAL is defined. If so,FI it indicates a project based on a directory other than the userse SYS$LOGIN directory.3 6. Use SET_PROC_NAME.COM to set process name.3 7. Now run the files AMBY_TOP:SETLOGS.COM and E AMBY_TOP:SETSYMBS.COM, in order to be sure of what tools ares defined.i2 PROJ_SET.COMGThis is the SET_PROJ tailoring procedure that is used by D. Amby. It is Jused by defining the logical name PROJ_SET to be the DCL command to invokeit. 0 $ DEFINE PROJ_SET "@AMBY_EXE:PROJ_SET" 3 Logicals7The following logical names are used by this procedure.o * LOGIN_DISKo * PROJ_NAME g * PROJ_TOP e * PROJ_DEV  * PROJ_DISK c * PROJ_LOCAL E3 Files >The following files are referenced and used by this procedure.1 * SET_PROC_NAME.COM - to set process name. @ * AMBY_TOP:SETLOGS.COM - defines D. Amby's logical names.B * AMBY_TOP:SETSYMBS.COM - defines D. Amby's global symbols. 3 ProcessingF 1. Use the logical name DCL_TRACE to determine whether or not toI output a message with the filename and parameters. This is to befH able to get an execution trace by the use of the command DEFINE DCL_TRACE TRUE.- 2. Set up interrupt and error handlers.hA 3. First be sure that a project is really defined, which istH indicated by the logical names PROJ_NAME and PROJ_DISK having aF value. If either is not defined, then just bypass everything.6 4. Set default directory to be the project disk.3 5. Use SET_PROC_NAME.COM to set process name.f3 6. Now run the files AMBY_TOP:SETLOGS.COM andoE AMBY_TOP:SETSYMBS.COM, in order to be sure of what tools are4 defined. 2 SECONDSTIME.COMAKThis utility can be used to convert a number of seconds to a VMS delta time @string as the value of a global symbol whose name you passed in.6 $ @AMBY_EXE:SECONDSTIME symbol number-seconds 3 ExamplesBThe following are some simple examples of how to use this utility.E * Convert 14678 seconds to delta time format, returning as the + value of global symbol DELTA_TIME. 9 $ @AMBY_EXE:SECONDSTIME DELTA_TIME 14678n) $ SHOW SYMBOL DELTA_TIME+ DELTA_TIME == "04:04:38"o 3 ProcessingG a. Make sure the user passed in the global symbol and seconds. Ifi% not, then just exit for now. G b. Convert the seconds to an integer and then divide it up to getnA the invidual components (seconds, minutes, hours, days).eE c. Use the components to build up the correct delta format timeu spec.C d. Return the resultant delta time string as the named global  symbol.2 SET_PROC_NAME.COMlDThis will change a process name to be one based on the current RSLIB$context (Product, Context, Product). 3 Logicals7The following logical names are used by this procedure.e; * PROJ_NAME - name of current RSLIB defined project.h> * CONTEXT_NAME - name of current RSLIB defined context.; * PROD_NAME - name of current RSLIB defined product.y 3 ProcessingF 1. Use the logical name DCL_TRACE to determine whether or not toI output a message with the filename and parameters. This is to beEH able to get an execution trace by the use of the command DEFINE DCL_TRACE TRUE.I 2. Set the process name based on the Product, Context, and Project. 2 SIG_TAPE_UPDATE.COM*IThis can be used to update everything that is to be placed on the savesetJfor the DECUS Languages & Tools SIG tape. This is mainly intended as a wayKto ensure that everything that needs to be built is up to date in all of myisoftware products (Don Amby)$ $ @AMBY_EXE:SIG_TAPE_UPDATE 3 Logicals2The following logical names are used by this tool.3 ToolstHThe following is a list of some non-standard tools that are used in this procedure.4 * SET_PROJ - To set the current ISEE project.4 * SET_PROD - To set the current ISEE product.4 * TOOLKITS - to set up all standard toolkits.A * WRK - To set default directory for working on product.a3 Filesn)The following files are used by this toolt * SIG_TAPE_UPDATE.SETKITSE This is a list of toolkit directories that are to be used bylI this procedure. This also defines where the tools that are built  are to be 'installed'.l 3 ProcessingE 1. Set the current project to be the PERSONAL project, which is E what I (Don Amby) use to update everything for the SIG tape. I 2. Set up every toolkit that needs to be defined prior to doing any  updating.F 3. Now, I need to set up each product that I am releasing to theH tape and rebuild it by running the SIG_TAPE.COM file that is inI each work directory. Since this is a bit much to do, we just usenC an internal subroutine and CALL it to do the work for eacha product listed. a. COMMONc b. AMBYt c. BASETOOLS d. CMTOOLS e. DECUSTOOLSa f. DOCTOOLS  g. EDITe h. LT_SIGm i. NOTES j. RSLIB k. SITEr l. TESTTOOLS m. TEXTOOLStI 4. Okay, now that everything has been built, then set up all of it,e5 by running the SETUP.COM in AMBY_ROOT:[RUN].tG 5. Set up every toolkit that was defined at the beginning of thisp; in order to document what are the latest versions. 3 Subroutines ?The following are internal subroutines that are CALLed in this.h4 updateF 1. Check to see if first parameter (product name) was passed. If) not just exit with error status.bG 2. Output a message to indicate what product is to be updated andCD set up that product. Then use the WRK tool to establish the+ default directory to do update in.fG 3. If there was a command procedure file name supplied, then justdA run it, otherwise we need to check for how to update thea product.l: - Update by just running with SIG_TAPE.COM file< - we can build it using BUILD.COM and install via INSTALL.COM.e* - build this by using BUILD.COM. - INSTALL this by using INSTALL.COMG - We can update this product using the ALL.COM in the commonC area defined as part of default directory search list.h 2 STDIO.COM*HShell that can be used as an interface to running a DCL command. This isCmainly used as a convenient way to log the output of a DCL command.e3 $ STDIO infile outfile errfile dcl-commandc 3 ParametersE * infile Standard input file (terminal if undefined).tF * outfile Standard output file (terminal if undefined).E * errfile Standard error file (terminal if undefined).h, * dcl-command DCL command to run. 2 TIMER.COM*HThis is a very simple tool that allows you to check out the (wall clock)(time that it takes to run a DCL command.$ $ TIMER dcl-command-string 3 UtilitiespFThis uses the following additional utilities, which must be located in the same directory as this file.E * DCL.COM - to redirect the output of a DCL command to NL:, to % that no output is generated. G * SECONDSTIME.COM - to calculate the elapsed time from the totali number of seconds.T * YRSEC.COM2 TOOLCMS.COM*DDCL command procedure that will insert all of the source files for a/standard tool into the current DEC/CMS library.fC $ TOOLCMS name "description of tool" cre-quals ins-quals 3 Parameters Parm Functions7 ---- --------------------------------------t p1 Tool name. - p2 Tool description (for group)m8 p3 Qualifiers for all CMS CREATE ELEMENTs.8 p4 Qualifiers for all CMS INSERT ELEMENTs. 3 Processing6 a. If there is a tool_CMS.COM file, then run it.1 b. Create DEC/CMS group for all tool files.fE c. Create the elements for tool files, and insert each into the_ overall tool group. 3 Subroutines 2. ADD_ELEn 3 ExamplesAThe following are some simple examples of how to use this tool...h2 TOOLMOVE.COM*hJThis tool can be used to generate a DCL command procedure that can be usedBto move a tool from one CMS library to another. It will create theFnecessary CMS commands to copy all elements for a tool (defined by theJgroup name), create the group in the new library and insert all tool filesinto the group.aE $ TOOLMOVE tool_group out_file [cms_library [cms_class]]n 3 ParametersDYou may enter a question mark (?) as the first parameter, and you beEplaced into HELP (from the toolkit help library for the tool. You maytHalso respond to any of the prompts with a question mark (?) and you will4be placed into help for that parameter of this tool. 4 tool_groupEThis must be the name of a CMS group that defines the tool that is tor be moved. It must already exist! 4 out_fileGThe output from this tool is a DCL command procedure with the necessaryAGCMS commands to load everything into the library. This is the file nameifor it.s)If omitted, then TOOLMOVE.OUT is assumed.h 4 cms_library AThis is an optional directory specification for a CMS library. IfOAomitted, then the current library (as defined by the logical nameECMS$LIB) is used. 4 cms_classgGThis is an optional name for a CMS class in which to place each elementr7that is created (or updated) based on the 'tool_group'.s3 Toolso0The following tools are necessary for this tool. * ADDTOLINE * CMS 3 LogicalsGThe following are the tool-specific and user-general logical names that are used by this tool.; TOOLMOVE_DEBUG "TRUE" runs this in DEBUG mode. B TOOLMOVE_VERIFY "TRUE" runs this with verification on.D USER$EDIT DCL command string to run a text editor.F SYS$SCRATCH Directory for all temporary files created.CIn addition, the following toolkit-specific logical names are used.oE AMBY_EXE Points to Toolkit executable files directory.l= AMBY_MODE "EXPERT" means user wants expert mode 3 Processing a. InitializationCH 1. Get the input parameters into local symbols, and save p1 asE "parm1" parameter independent check for a question mark. F 2. Define all of the local symbols, that will essentially beG used as constants, variables, and DCL commands within thiss procedure.H 3. Define local symbols that represent temporary files used byH this tool. They are to be created (and deleted before EXIT)9 in the user scratch directory (SYS$SCRATCH).r * com_file  * edt_filek * elements_file * group_filee@ 4. Get the values of the logical names TOOLMOVE_DEBUG,G TOOLMOVE_VERIFY, AMBY_MODE, USER$EDIT, and USER$PRINT intos+ local symbols for later usage.sB 5. Define the CONTROL/Y, and error conditional handling.I 6. Check the values from the various logicals, and define localo+ symbols to appropriate values. b. Parameter ProcessingeE 1. Check for a question mark (?) as the first parameter. Ifn@ this is the case reference the Toolkit help libraryH (AMBY_HLB), and display the help for this tool, leaving theA user in HELP. This is so that they may check out anyM) subtopics before proceeding.tH 2. Define all local symbols that are used for prompt messages,: and error messages related to each parameter. 3. tool_group @ Check to see that the user passed in a name for the? tool_group. If so, proceed on. If not, and this iss7 interactive, then prompt the user for one. I  a) Check to see if an 'tool_group' is defined. If not, thenpF we cannot really continue. We MUST have a group name. 4. out_file E Check to see if the 'out_file' was passed on the command F line. If it was do nothing. If not, and this is being runC interactively, then prompt the user for an 'out_file'.aI a) If the user did not specify an output file then just use . the default output file name. 5. cms_libraryH Check to see if the 'cms_library' was passed on the commandF line. If it was do nothing. If not, and this is being runF interactively, then prompt the user for an 'cms_library'.I a) If the user did not specify an output file then just use . the default output file name. 6. cms_class@ Check to see that the user passed in a name for the> cms_class. If so, proceed on. If not, and this is7 interactive, then prompt the user for one.5 c. Main ProcessingH 1. If a CMS library (other than CMS$LIB) is to be set up, then do it. F 2. Process the 'tool_group' so as to be sure it really is anC existing one in the CMS library that has been defined. 3 3. If the group is valid we can continue.H 4. Use the 'tool_group' to generate a listing of the elements,H  which is then used to create the commands to copy them from the old library.rD 5. Do a CMS SHOW ELEMENT of the elements in the tool groupB using the /FORMAT qualier in order to have the outputF command procedure insert each element into the tool group4 (as it is in the original CMS library).I 6. If the user specified a 'cms_class', then we need to add theH; necessary CMS commands to the DCL output file. F  7. All we need do now is add the commands to gracefully exit0 from CMS and the command procedure. d. Error Processinge. * No tool group name was specified./ * Bad tool group name was specified. 7 * Handle ERROR condition, then go to return.M> * Handle SEVERE error condition, then go to return.; * Handle CONTROL_Y condition, then go to return.SF * Handle abnormal end of file on READ condition, then go to return.< * Handle READ ERROR condition, then go to return. e. Return ProcessingF Close any files that were opened (via OPEN), delete temporary? files, restore verification, and EXIT with the currentsI 'ret_status' value, (.or. with 'ret_mask' to disable VMS message  display).2 TOOLSLIB.COMJThis is a subroutine library of common DCL routines for use by any and allIRSLIB tools at the DCL level. These are prototypes of functions that wille&be eventually replaced by C functions.) $ @this-file subroutine parms... 3 ExamplesG 1. The following is used to initialize the global symbols so thatC you can easily invoke some subroutines as DCL command line  tools. ) $ @this-file INITIALIZEt 3 ReferenceeHThis is patterned after the SUBROUTINE-LIBRARY.COM file in Appendix C ofDthe book "Writing Real Programs in DCL", by Paul C. Anagnostopoulos.H3. Use the logical name DCL_TRACE to determine whether or not to outputHa message with the filename and parameters. This is to be able to get an@execution trace by the use of the command DEFINE DCL_TRACE TRUE. 3 SubroutinestFEach of the following is a pseudo-subroutine for common functions that!can be used by any DCL procedure. 4 askDThis subroutine asks the user a question and returns the answer. TheEprompt for the question is composed of a query string and optionall andefault answer. ny and allIRSLIB tools at the DCL level. These are prototypes of functions that willu&be eventually replaced by C functions.) $ @this-file subroutine parms...d 3 ExamplesG 1. The following is used to initialize the global symbols so thathC you can easily invoke some subroutines as DCL command lineP tools.t) $ @this-file INITIALIZEi 3 ReferencepHThis is patterned after the SUBROUTINE-LIBRARY.COM file in Appendix C ofDthe book "Writing Real Programs in DCL", by Paul C. Anagnostopoulos.H3. Use the logical name DCL_TRACE to determine whether or not to outputHa message with the filename and parameters. This is to be able to get an@execution trace by the use of the command DEFINE DCL_TRACE TRUE. 3 SubroutineseFEach of the following is a pseudo-subroutine for common functions that!can be used by any DCL procedure.a4 askDThis subroutine asks the user a question and returns the answer. TheEprompt for the question is composed of a query string and optionall aadefault answer.l 5 Parameters4 * P2 - A global symbol to receive the answer.E * P3 - The data type of the answer, where: B=boolean (yes/no),i! I=integer, and S=string.oC * P4 - The query string for the question. It must end with a, punctuation character and no space.? * P5 - Optional default answer. If not specified then an ! answer MUST be supplied.Y0 * P6 - A comma-separated list of options:5 - H - Display help before asking question. 8 - S - Skip a line before asking the question.) - U - Upcase the input string.e+ - Z - allow CTRL/Z as an answer.hC * P7 - The help specifier (optional). It must be in the form of a valid DCL command.5 Result4 * For boolean data type, a 0 (no) or 1 (yes)., * For integer data type, the integer.* * For string data type, the string.; * If CTRL 5 Parameters4 * P2 - A global symbol to receive the answer.E * P3 - The data type of the answer, where: B=boolean (yes/no),! I=integer, and S=string.pC * P4 - The query string for the question. It must end with a , punctuation character and no space.? * P5 - Optional default answer. If not specified then an! answer MUST be supplied.s0 * P6 - A comma-separated list of options:5 - H - Display help before asking question.s8 - S - Skip a line before asking the question.) - U - Upcase the input string.s+ - Z - allow CTRL/Z as an answer. C * P7 - The help specifier (optional). It must be in the formh of a valid DCL command.5 Result4 * For boolean data type, a 0 (no) or 1 (yes)., * For integer data type, the integer.* * For string data type, the string.; * If CTRL/Z is allowed, the string "^Z" is returned. 4 signalBThis subroutine 'signals' a message, producing one or more messageDlines in the standard VMS format. It also exists with a status whose$severity matches that of the message 5 Parameters( * P2 - the message facility code.6 * P3 - the message severity (S, I, W, E, or F).) * P4 - the message identification.n * P5 - the message text.: * Pn - optional message lines or status codes whoch8 corresponding message lines are to be included.5 StatusAThe severity of the exit status is equal to the message severity,r@except in the case of warnings. If the message severity is W, anEinformational severity is included in the status so that the caller'sterror handler is not invoked.4 lookup_keyword>This looks up a keyword or its abbreviation in a list of validCkeywords. If the keyword exists in the list and is unique, the fullkeyword is returned. 5 Parameters4 * P2 - A global symbol to receive the result.3 * P3 - The keyword or a unique abbreviation.i7 * P4 - A comma-separated list of valid keywords.c5 ResultEIf the (abbreviated) keyword is valid and unique, the full keyword istBreturned. If the keyword is invalid or null, then a null string is returned.y 4 setrooteGThis can be used to simplify the definition of logical devices, so thatf?you can supply the directory name in any format that is a validgdirectory specification. 5 Parameters * P2 - logical name.e& * P3 - directory specification.5 * Pn - Optional qualifiers for DEFINE command.s 5 ProcessingA 1. First check to be sure that a logical name and directoryo@ spec was provided. If either is missing it is an error.? 2. Parse out the complete device (to physical device) and3 directory specification of the "dir_spec".e( 3. define the rooted logical name. 4 initializeGThis will define global symbols and other data structures that are used -by the procedures in this subroutine library. 5 ParametersNone are used. 5 Symbols?The following global symbols are defined in order to make theseDprocedures easier to use from within any other DCL command procedurefile. * ask * lookup_keyword * signal * setroot 2 YRSEC.COMIReturn the number of seconds in the year since the time that is specifiedEas the P1 parameter (where default is the current time) in the GLOBALSYMBOL "YRSEC". 3 Utilities * AMBY_EXE:JULIAN.COMww/Z is allowed, the string "^Z" is returned.4 signalBThis subroutine 'signals' a message, producing one or more messageDlines in the standard VMS format. It also exists with a status whose$severity matches that of the message 5 Parameters( * P2 - the message facility code.6 * P3 - the message severity (S, I, W, E, or F).) * P4 - the message identification. * P5 - the message text.: * Pn - optional message lines or status codes whoch8 corresponding message lines are to be included.5 StatusAThe severity of the exit status is equal to the message severity,@except in the case of warnings. If the message severity is W, anEinformational severity is included in the status so that the caller'serror handler is not invoked.4 lookup_keyword>This looks up a keyword or its abbreviation in a list of validCkeywords. If the keyword exists in the list and is unique, the fullkeyword is returned. 5 Parameters4 * P2 - A global symbol to receive the result.3 * P3 - The keyword or a unique abbreviation.7 * P4 - A comma-separated list of valid keywords.5 ResultEIf the (abbreviated) keyword is valid and unique, the full keyword isBreturned. If the keyword is invalid or null, then a null string is returned. 4 setrootGThis can be used to simplify the definition of logical devices, so that?you can supply the directory name in any format that is a validdirectory specification. 5 Parameters * P2 - logical name.& * P3 - directory specification.5 * Pn - Optional qualifiers for DEFINE command. 5 ProcessingA 1. First check to be sure that a logical name and directory@ spec was provided. If either is missing it is an error.? 2. Parse out the complete device (to physical device) and3 directory specification of the "dir_spec".( 3. define the rooted logical name. 4 initializeGThis will define global symbols and other data structures that are used-by the procedures in this subroutine library. 5 ParametersNone are used. 5 Symbols?The following global symbols are defined in order to make theseDprocedures easier to use from within any other DCL command procedurefile. * ask * lookup_keyword * signal * setroot 2 YRSEC.COMIReturn the number of seconds in the year since the time that is specifiedEas the P1 parameter (where default is the current time) in the GLOBALSYMBOL "YRSEC". 3 Utilities * AMBY_EXE:JULIAN.COMww