#!/bin/ksh
# type  ........
#
#	"idcams" to obtain translation in sh script
#
#	"IDCAMS"  to obtail normal execution
#
#	"IDCAMS -d" to obtain debug execution : no commands in execution
#
if [ "a$IDEBUG" = a ]
then
   if [ $# -eq 1 ]
   then
	   IDEBUG="yes"
	   echo "PGM=IDCAMS in debug mode"
   else
	   if [ "a$VALIDATE" = "ay" ]
	   then
		   IDEBUG="yes"
		   echo "PGM=IDCAMS in validation mode is not executed"
	   else
		   IDEBUG="no"
		   echo "PGM=IDCAMS"
	   fi
   fi
fi
export IDEBUG
FILEMAP=`ebmsed $FILEMAP`
if [ "a$FILEMAP" = "a" ]
then
	echo FILEMAP environment variable is not set
	echo "20" > status.${JON}
	exit 20
fi
if [ ! -f $FILEMAP ]
then
	echo $FILEMAP: invalid File_Map
	echo "30" > status.${JON}
	exit 30
fi
DD_SYSIN=`ebmsed $DD_SYSIN`
if [ "a$DD_SYSIN" = "a" ]
then
	echo DD_SYSIN is not set
	if [ "a$VALIDATE" = "ay" ]
	then
		echo "0" > status.${JON}
		exit 0
	else
		echo "2" > status.${JON}
		exit 2
	fi
else
	if [ "a$VALIDATE" = "ay" ]
	then
		echo SYSIN=$DD_SYSIN
	fi
fi
PUB=$PUBLIC/bin
ID_SYSIN=$EBMTMPDIR/sysin.idc$JON.$$; export ID_SYSIN
echo "rm -f $ID_SYSIN" >> ${JON}_WK4a
if [ $? -ne 0 ]
then
  echo "#"
  echo "# ERROR updating file ${JON}_WK4a"
  echo "#"
  echo "255" > status.${JON}
  exit 255
fi
if [ -f $ID_SYSIN ]
then
  rm $ID_SYSIN
  if [ $? -ne 0 ]
  then
    echo "#"
    echo "# ERROR deleting file $ID_SYSIN"
    echo "#"
		  echo "255" > status.${JON}
		  exit 255
  fi
fi

cat `ebmsed $DD_SYSIN splitconcpaths` > $ID_SYSIN
if [ $? -ne 0 ]
then
  if [ "a$VALIDATE" = "ay" ]
  then
    rm -f $ID_SYSIN
    echo "#"
    echo "# Warning $DD_SYSIN not found"
    echo "#"
    echo "0" > status.${JON}
    exit 0
  else
    rm -f $ID_SYSIN
    echo "#"
    echo "# ERROR creating temporary SYSIN $ID_SYSIN"
    echo "#"
    echo "255" > status.${JON}
    exit 255
  fi
fi

if [ "a$VALIDATE" = "ay" ]
then
  echo "SYSIN:"
  echo "--------------------------------------------------------------------------------"
  cat $ID_SYSIN
  echo "--------------------------------------------------------------------------------"
  echo "0" > status.${JON}
  rm -f $ID_SYSIN
  exit 0
fi

if [ "a$VERBOSE" = "aYES" ]
then
  echo "SYSIN:"
  echo "--------------------------------------------------------------------------------"
  cat $ID_SYSIN
  echo "--------------------------------------------------------------------------------"
fi

echo END_SYSIN >> $ID_SYSIN
if [ $? -ne 0 ]
then
  rm -f $ID_SYSIN
  echo "#"
  echo "# ERROR updating file $ID_SYSIN"
  echo "#"
  echo "255" > status.${JON}
  exit 255
else
  echo "0" > status.${JON}
fi
name=`basename $0`
case $EBM_OS_NAME in
  NT)
     ID_SYSIN1=$EBMTMPDIR/sysin1.idc$JON.$$; export ID_SYSIN1
     cat $ID_SYSIN > $ID_SYSIN1
     if [ $? -ne 0 ]
     then
       rm -f $ID_SYSIN
       echo "#"
       echo "# ERROR defining file $ID_SYSIN1"
       echo "#"
       echo "255" > status.${JON}
       exit 255
     fi
     echo "rm -f $ID_SYSIN1" >> ${JON}_WK4a
     if [ $name = IDCAMS ]
     then
	      CMD="$SHELL "
     else
	      CMD="cat "
     fi
     sed -e 's/CATALOG(/CATALOG (/g' |
     sed -e 's/\;$//' $ID_SYSIN |
     sed -e 's/CANCEL JOB/exit  255/g' |
     sed -e 's/CANCEL STEP/exit 0/g' |
     sed -e '/^[	 ]*\/\*.*\*\/[	 ]*$/d' |
     sed -e 's/\/\*.*\*\///g' |
     sed -e 's/\/\/\*.*//g'  > $ID_SYSIN1

     sed -e 's/ +$/-/' $ID_SYSIN1 |
     sed -e 's/+$/ +/' 	|
     sed -e 's/-$/ -/' 	|
     sed -e 's/- [  ]*[0-9,A-Z]*$/ -/'  > $ID_SYSIN

     sed -e 's/                                                                        *[0-9,A-Z]*$//' $ID_SYSIN |
     sed -e 's/,/ /g'   	|
     sed -e 's/MAXCC=/MAXCC = /' |
     sed -e 's/LASTCC=/LASTCC = /' |
     sed -e 's/DEFINE[ 	]*CLUSTER(/DEFINE CLUSTER (/' > $ID_SYSIN1

     sed -e 's/DEFINE[ 	]*ALIAS(/DEFINE ALIAS (/' $ID_SYSIN1 |
     sed -e 's/DEFINE[ 	]*NONVSAM(/DEFINE NONVSAM (/' |
     awk -f $PUB/idcams_prog > $ID_SYSIN

$CMD << %
`cat $ID_SYSIN`
%
     status=$?
     rm $ID_SYSIN
     rm $ID_SYSIN1
     ;;
   *)
     if [ $name = IDCAMS ]
     then
	      CMD="sh "
     else
	      CMD="cat "
     fi
$CMD << %
`cat $ID_SYSIN | 
sed -e 's/INFILE[ ]*([ ]*/INFILE(/g' |
sed -e 's/IFILE[ ]*([ ]*/IFILE(/g' |
sed -e 's/OUTFILE[ ]*([ ]*/OUTFILE(/g' |
sed -e 's/OFILE[ ]*([ ]*/OFILE(/g' |
sed -e 's/INDATASET[ ]*([ ]*/INDATASET(/g' |
sed -e 's/IDS[ ]*([ ]*/IDS(/g' |
sed -e 's/OUTDATASET[ ]*([ ]*/OUTDATASET(/g' |
sed -e 's/ODS[ ]*([ ]*/ODS(/g' |
sed -e 's/COUNT[ ]*([ ]*/COUNT(/g' |
sed -e 's/CATALOG[ ]*([ ]*/CATALOG(/g' |
sed -e 's/CANCEL JOB/exit  255/g' |
sed -e 's/CANCEL STEP/exit 0/g' |
sed -e 's/\;$//'   |
sed -e '/^[	 ]*\/\*.*\*\/[	 ]*$/d' |
sed -e 's/\/\*.*\*\///g' |
sed -e 's/\/\/\*.*//g'  |
sed -e 's/ +$/-/' 	|
sed -e 's/+$/ +/' 	|
sed -e 's/-$/ -/' 	|
sed -e 's/- [  ]*[0-9,A-Z]*$/ -/'  |
sed -e 's/                                                                        *[0-9,A-Z]*$//'   |
sed -e 's/,/ /g'   	|
sed -e 's/MAXCC=/MAXCC = /' |
sed -e 's/LASTCC=/LASTCC = /' |
sed -e 's/DEFINE[ 	]*CLUSTER(/DEFINE CLUSTER (/' |
sed -e 's/DEFINE[ 	]*ALIAS(/DEFINE ALIAS (/' |
sed -e 's/DEFINE[ 	]*NONVSAM(/DEFINE NONVSAM (/' |
awk -f $PUB/idcams_prog`
%
     status=$?
     rm $ID_SYSIN
     ;;
esac
if [ $status -ne 0 ]
then
  rm -f $ID_SYSIN
  echo $status > status.${JON}
  exit $status
fi
if [ "a${MAXCC_RC}" = "aYES" ]
then
   maxcc_stat=`cat status.${JON}`
   if [ "${maxcc_stat}" != "0" ]
   then
      echo "0" > status.${JON}
      echo "_${STEPNAME}_ ${maxcc_stat}" > ${JON}_RET
   fi
fi
exit 0
