#! /bin/ksh # # Author: Mike Fleming mike@tauzero.co.uk # # Generate a file viewer or file search facility # # genprog filename select.cpy fd.cpy progtype # # filename - name of file for which program is being generated # select.cpy - name of select..assign copy member # fd.cpy - name of FD copy member # progtype - program type - v (view) or s (search) # # Will be generated into the file fview[filename].cbl # or fsrch[filename].cbl USAGE="genprog filename select.cpy fd.cpy progtype filename - name of file for which program is being generated select.cpy - name of select...assign copy member (without path name) fd.cpy - name of FD copy member (without path name) progtype - program type - v (view) or s (search) Will be generated into the file fview[filename].cbl or fsrch[filename].cbl\n\n" FNAME=$1 SELNAME=$2 FDNAME=$3 PROGTYPE=$4 if (( $# > 4 )) then echo $USAGE exit 1 elif (( $# < 4 )) then read FNAMEX?"Filename:$FNAME" read SELNAMEX?"Select copy member:$SELNAME" read FDNAMEX?"File definition copy member:$FDNAME" read PROGTYPEX?"Program type:$PROGTYPE" if [[ "$FNAMEX" != "" ]] then FNAME=$FNAMEX fi if [[ "$SELNAMEX" != "" ]] then SELNAME=$SELNAMEX fi if [[ "$FDNAMEX" != "" ]] then FDNAME=$FDNAMEX fi if [[ "$PROGTYPEX" != "" ]] then PROGTYPE=$PROGTYPEX fi fi if [[ "$FNAME" == "" ]] then echo "File name must be supplied" echo $USAGE exit 1 fi if [[ "$SELNAME" == "" ]] then echo "Select copy member file name must be supplied" echo $USAGE exit 1 fi if [[ "$FDNAME" == "" ]] then echo "File description copy member file name must be supplied" echo $USAGE exit 1 fi if [[ "$PROGTYPE" == "" ]] then echo "Program type must be supplied" echo $USAGE exit 1 fi COBCPYLST=$(echo $COBCPY | tr ':' ' ') SEL_OK=N FD_OK=N for a in $COBCPYLST do if [[ -f $a/$SELNAME ]] then SEL_OK=Y fi if [[ -f $a/$FDNAME ]] then FD_OK=Y fi done if [[ "$SEL_OK" == "N" ]] then echo "Select copy member does not exist" echo $USAGE exit 1 fi if [[ "$FD_OK" == "N" ]] then echo "File description copy member does not exist" echo $USAGE exit 1 fi case $PROGTYPE in s|S) PROGFILENAME=fsrch$FNAME.cbl;; v|V) PROGFILENAME=fview$FNAME.cbl;; *) echo "Program type must be s or v" echo $USAGE exit 1;; esac cobrun generateprog $FNAME $SELNAME $FDNAME $PROGTYPE > $PROGFILENAME echo "Program $PROGFILENAME generated OK"