Guide to CDP

This is to help you get around with using Command and Displat Program or CDP. Most users of SMS will be happy to use XCdp, but some things, notably defining suites, cannot be done using XCdp. (That may change in future releases, but is correct in 4.4.1.) Note also that most of the commands that you execute using XCdp are actually CDP commands and that you can execute CDP commands in XCdp's collect window.

CDP is command line based, which means it reads your commands a line at the time. You can have multiple commands on a single line, and likewise a command occupy more that one line. This is true if you are using control-structures, like a while(IOI)-loop, or if you use the continuing-line character '\' as the last character on the line.

Start up

CDP starts by reading commands from two read commands files or rc-files. The first file read is IOIRC and after that it tries to read CDPRC. For both of these files there is three tries, eg for the first file:

  1. Try to open file pointed to by the environment variable $IOIRC, if it exists
  2. If unsuccessful, try a file in the current directory, eg ./.ioirc, if it exists
  3. If unsuccessful, try a file in your home directory, eg ~/.ioirc, if it exists

And likewise for the CDPRC.

Typical thing to do is to include statements into the one of them to save the history and at the start-up to read back old history. This way commands from your last session will be available in the next session.

Curses screen

to be added

Useful functions

For CDP you may use a few functions to view files. This way you don't neet to remember the ugly syntax and to remenber to delete the files. The files returned are obviously private copies. You would normally place these functions into the CDPRC file. For viewing the script use one like in here:

CDP function to read script

define script {
  file $*
  if(rc != 0) then
    vi $localfile
    $rm $localfile
  endif
}

For a job-file one like:

CDP function to read the job

define job {
  file -t job $*
  if(rc != 0) then
    vi $localfile
    $rm $localfile
  endif
}

and for the output one like the one below (once the task is complete/aborted,, or depending on the implementation of the task.) Notice it will read the last output file:

CDP function to read job output

define jobout {
  file -t jobout $*
  if(rc != 0) then
    vi $localfile
    $rm $localfile
  endif
}