This program sends our illustrious file on to the next process. It scans queue
p4wheel for incoming files.

For each new file, it reads in the FIP header (if there is one).
    - checks the MagicCode is not on a STOP
        either  - /p4/tmp/magicno/fipstop/(MAGIC)
        or  - /p4/tmp/magicno/fipstop/(MAGIC)_(PIPELINE)
        if so, file is ignored
    - finds the last stage done in the YX field
    - finds the TITLE code in the YT field - not really used except for logging
    - finds the PUB code in the YP field - not used except for logging
    - determines the next stage by looking for the YS: field
        in the form YS:  (process)
    - for each stage TO BE DONE at this level :
        reads the process
            finds the process in the P4PROCESS file
                stuffs the raw data form tmp/current into that queue in the DQ field as
                copies the stubfile to /p4/tmp/(pub)/stubfile/(Unid).(StageId)
                (Unid).(StageId) is \YI.\YX
    - if no stage is found - message that we have finished.
    - Each process is checked to see if it has been suspended 
        if so, the file gaily trips along to the next stage.

P4PROCESS file is in tables/p4 and its syntax is :

    ; comment

    (destination) (tab) (fip-hdr1):(data1) (tab) (hdr2):(data2) ... (EOL)
where   destination is the DU field
    fip-hdr is the header field or flag
    data is the optional data for that field/flag
For example
    ; P4PROCESS file
    rip     DQ:mono-rip
    distiller   DQ:distiller    PP:6066

If the process is flagged as 'p4message', a log token is sent back and the the
file is moved to the next stage(s).

Input options (all optional) :
    -q : queue to scan              default: spool/p4wheel
    -t : scan time                  default: 1 sec
    -z : name of P4PROCESS file in tables/p4    default: tables/p4/P4PROCESS
    -l : do NOT log everything through      default: log
    -v : version and exit

(copyright) 2017 and previous years FingerPost Ltd.