# metacopyinpgm.sh rev MT1 Support script for Lawson # "Program Load and Burble" # =================================================================== # NOTE: This program uses a special accumulating log. # =================================================================== DUMPDIR=$1 PRDLN=$2 SYSCD=$3 PGMNM=$4 SYSCDSRC=$SYSCD"src" # Define folder for holding the log file. LAWLOG=$HOME # Define master folder for holding transfer folders. LAWDMP=$HOME # CHECK FOR PRESENCE OF PARAMETERS if [ $# -ne 4 ] then echo " " echo "metacopyinpgm.sh Ver. MT1 - Milo's Program Load and Burble" echo " " echo "Copies in and installs a program from a transfer folder." echo " " echo "usage: sh metacopyinpgm.sh loaddir productline system pgmname" echo " NOTE: This version of UNIX is case-sensitive." echo " " echo "Transfer folder root directory: $LAWDMP" echo " " exit 1 fi LOGFL=$LAWLOG/metacopyinpgm.log if [ ! -f $LOGFL ] then # CREATE LOG FILE HEADER echo "metacopyinpgm rev MT1 "`date` > $LOGFL echo "" >> $LOGFL echo "=====> Milo's Program Load and Burble" >> $LOGFL echo "" >> $LOGFL fi echo " --------------- " | tee -a $LOGFL echo `who am i | awk '{print $1}'` " " `date` | tee -a $LOGFL echo "Loading prod.line $PRDLN system $SYSCD program $PGMNM" | tee -a $LOGFL # SEE IF LOAD SUBDIRECTORY EXISTS if [ ! -d "$LAWDMP/$DUMPDIR" ] then echo "Script confusion!" | tee -a $LOGFL echo "Load directory $LAWDMP/$DUMPDIR does not exist." | tee -a $LOGFL echo "" | tee -a $LOGFL exit 1 fi if [ ! -d "$LAWDIR/$PRDLN/$SYSCDSRC" ] then echo "Script confusion!" | tee -a $LOGFL echo "Cannot find directory $LAWDIR/$PRDLN/$SYSCDSRC" | tee -a $LOGFL echo " " | tee -a $LOGFL exit 1 fi if [ ! -f "$LAWDMP/$DUMPDIR/${PGMNM}.dmp" ] then echo "Script confusion!" | tee -a $LOGFL echo "Cannot find transfer files for program $PGMNM" | tee -a $LOGFL echo " " | tee -a $LOGFL exit 1 fi # GO TO SOURCE DIRECTORY cd $LAWDIR/$PRDLN/$SYSCDSRC # BACK UP OLD VERSION DATETMP=`date +%Y%m%d%H%M%S` BACKDT=$DATETMP # YYYYMMDDHHMMSS - UNIQUE TO THE SECOND! if [ -f ${PGMNM}PD ] then mv -f ${PGMNM}PD ${PGMNM}PD_$BACKDT mv -f ${PGMNM}WS ${PGMNM}WS_$BACKDT mv -f $PGMNM.scr ${PGMNM}_$BACKDT.scr fi if [ -f $PGMNM.rpt ] then mv -f $PGMNM.rpt ${PGMNM}_$BACKDT.rpt fi if [ -f ${PGMNM}BPD ] then mv -f ${PGMNM}BPD ${PGMNM}BPD_$BACKDT mv -f ${PGMNM}BWS ${PGMNM}BWS_$BACKDT fi if [ -f ${PGMNM}MPD ] then mv -f ${PGMNM}MPD ${PGMNM}MPD_$BACKDT mv -f ${PGMNM}MWS ${PGMNM}MWS_$BACKDT fi if [ -f ${PGMNM}EPD ] then mv -f ${PGMNM}EPD ${PGMNM}EPD_$BACKDT mv -f ${PGMNM}EWS ${PGMNM}EWS_$BACKDT fi # COPY PROGRAM FILES cp $LAWDMP/$DUMPDIR/${PGMNM}.dmp . cp $LAWDMP/$DUMPDIR/${PGMNM}PD . cp $LAWDMP/$DUMPDIR/${PGMNM}WS . cp $LAWDMP/$DUMPDIR/${PGMNM}.scr . cp $LAWDMP/$DUMPDIR/${PGMNM}.msz . # DELETE BACKUPS IF NO UPDATES MADE # Assumed - if PD exists, the other files exist. if [ -f ${PGMNM}PD_$BACKDT ] then diff ${PGMNM}PD ${PGMNM}PD_$BACKDT > xyz_test_me.diff if [ ! -s xyz_test_me.diff ] then rm ${PGMNM}PD_$BACKDT fi diff ${PGMNM}WS ${PGMNM}WS_$BACKDT > xyz_test_me.diff if [ ! -s xyz_test_me.diff ] then rm ${PGMNM}WS_$BACKDT fi diff $PGMNM.scr ${PGMNM}_$BACKDT.scr > xyz_test_me.diff if [ ! -s xyz_test_me.diff ] then rm ${PGMNM}_$BACKDT.scr fi fi # REPORT SCREENS - DON'T ALWAYS EXIST if [ -f $LAWDMP/$DUMPDIR/$PGMNM.rpt ] then cp $LAWDMP/$DUMPDIR/$PGMNM.rpt . if [ -f ${PGMNM}_$BACKDT.rpt ] then diff $PGMNM.rpt ${PGMNM}_$BACKDT.rpt > xyz_test_me.diff if [ ! -s xyz_test_me.diff ] then rm ${PGMNM}_$BACKDT.rpt fi fi fi # LOAD AND COMPILE pgmload -p $PGMNM.dmp $PRDLN msggen $PRDLN ${PGMNM}.msz qcompile $PRDLN $SYSCD $PGMNM # USER EXIT PROGRAMS - DON'T USUALLY EXIST # B - BEGIN if [ -f $LAWDMP/$DUMPDIR/${PGMNM}BPD ] then cp $LAWDMP/$DUMPDIR/${PGMNM}BPD . cp $LAWDMP/$DUMPDIR/${PGMNM}BWS . if [ -f ${PGMNM}BPD_$BACKDT ] then diff ${PGMNM}BPD ${PGMNM}BPD_$BACKDT > xyz_test_me.diff if [ ! -s xyz_test_me.diff ] then rm ${PGMNM}BPD_$BACKDT fi diff ${PGMNM}BWS ${PGMNM}BWS_$BACKDT > xyz_test_me.diff if [ ! -s xyz_test_me.diff ] then rm ${PGMNM}BWS_$BACKDT fi fi qcompile -u $PRDLN $SYSCD ${PGMNM}B fi # M - MID if [ -f $LAWDMP/$DUMPDIR/${PGMNM}MPD ] then cp $LAWDMP/$DUMPDIR/${PGMNM}MPD . cp $LAWDMP/$DUMPDIR/${PGMNM}MWS . if [ -f ${PGMNM}MPD_$BACKDT ] then diff ${PGMNM}MPD ${PGMNM}MPD_$BACKDT > xyz_test_me.diff if [ ! -s xyz_test_me.diff ] then rm ${PGMNM}MPD_$BACKDT fi diff ${PGMNM}MWS ${PGMNM}MWS_$BACKDT > xyz_test_me.diff if [ ! -s xyz_test_me.diff ] then rm ${PGMNM}MWS_$BACKDT fi fi qcompile -u $PRDLN $SYSCD ${PGMNM}M fi # E - END if [ -f $LAWDMP/$DUMPDIR/${PGMNM}EPD ] then cp $LAWDMP/$DUMPDIR/${PGMNM}EPD . cp $LAWDMP/$DUMPDIR/${PGMNM}EWS . if [ -f ${PGMNM}EPD_$BACKDT ] then diff ${PGMNM}EPD ${PGMNM}EPD_$BACKDT > xyz_test_me.diff if [ ! -s xyz_test_me.diff ] then rm ${PGMNM}EPD_$BACKDT fi diff ${PGMNM}EWS ${PGMNM}EWS_$BACKDT > xyz_test_me.diff if [ ! -s xyz_test_me.diff ] then rm ${PGMNM}EWS_$BACKDT fi fi qcompile -u $PRDLN $SYSCD ${PGMNM}E fi # GET RID OF DIFF TEST FILE if [ -f xyz_test_me.diff ] then rm xyz_test_me.diff fi # DONE cd echo " " | tee -a $LOGFL # ======= EOF =========