#!/bin/ksh
#**********************************************************************#
#*                                                                    *#
#* Copyright (c) 2001 by Sun Microsystems, Inc.                       *#
#* All rights reserved.                                               *#
#*                                                                    *#
#**********************************************************************#


########################################################################
#                                                                      #
# EBM BATCH JOB MACRO :     SETPARM                                    #
# Purpose             :     Assign a value to a parameter              #
#                                                                      #
#                                                                      #
########################################################################
. verify_jobstatus
. beginjob.${EBMSYS}.${JON}
. current_proc_level.${EBMSYS}.${JON}

ABORT=NO; export ABORT 

print_message_STEPNAME=''; export print_message_STEPNAME

if [ -f label.${EBMSYS}.${JON}.${PROC_LEVEL} ]
then
   . label.${EBMSYS}.${JON}.${PROC_LEVEL}
fi

if [ "a$BATCH_MODE" = "aMVS" ]
then
   if [ "a$STEPNAME" != a ]
   then
      . check_bypass_step

      if [ "$BYPASS" = "YES" ]
      then
          exit 0
      fi
   fi
fi

print_message_STEPNAME=$STEPNAME; export print_message_STEPNAME

if [ -f beginproc.setparms.${EBMSYS}.${JON}.${PROC_LEVEL} ]
then
   . beginproc.setparms.${EBMSYS}.${JON}.${PROC_LEVEL}
fi

if [ -f setparm.${EBMSYS}.${JON}.${PROC_LEVEL} ]
then
   . setparm.${EBMSYS}.${JON}.${PROC_LEVEL}
else
   cat <$DEVNULL > setparm.${EBMSYS}.${JON}.${PROC_LEVEL}
   chmod 755 setparm.${EBMSYS}.${JON}.${PROC_LEVEL}
fi


lPARMS=' ' ; export lPARMS

for argument in $*
do
  i=`eval echo $argument`
  case $i in
    parms=*|PARMS=*)
       tmp_parms="`eval echo $i|cut -c7-`"; export tmp_parms
       lPARMS="$lPARMS $tmp_parms"; export lPARMS
       ;;
    verbose|VERBOSE)
      VERBOSE=YES ; export VERBOSE
      ;;
    *)
      print_message SETPARM "Invalid parameter specified :   $i" 
      . set_jobstatus_abort
      ABORT=YES; export ABORT 
       ;;
  esac
done

if [ "a$ABORT" != "aYES" ]
then
   if [ "a$VERBOSE" != "a" ]
   then
       print_message SETPARM "-----Starting in verbose mode-----"
   fi
   
   if [ "a$lPARMS" != "a" ]
   then
      for p in `echo $lPARMS|sed 's/,/ /g'`
      do
         parm_name=`echo $p|cut -f1 -d'='`
         parm_value=`echo $p|cut -f2 -d'='`
   
         if [ "$parm_value" = "LASTRC" ]
         then
             parm_value=`LASTRC` ; export parm_value
         fi
   
         if [ "$parm_value" = "MAXRC" ]
         then
             parm_value=`MAXRC` ; export parm_value
         fi
   
         grep "^$parm_name=" setparm.${EBMSYS}.${JON}.${PROC_LEVEL} > $DEVNULL 2>&1
         if [ $? -eq 0 ]
         then
            TEMPFILE1=/tmp/sed_setparm.$$
            TEMPFILE2=/tmp/sed_setparm_wk.$$
            cat <$DEVNULL > $TEMPFILE
            echo "s/^$parm_name=.*$/$parm_name=\$parm_value ; export $parm_name"/ >> $TEMPFILE1 
            echo "s/^$parm_name=.*$/$parm_name=$parm_value ; export $parm_name"/ >> $TEMPFILE1 
            cat setparm.${EBMSYS}.${JON}.${PROC_LEVEL} | sed -f $TEMPFILE1 > $TEMPFILE2 
            cp $TEMPFILE2 setparm.${EBMSYS}.${JON}.${PROC_LEVEL}
            rm -f $TEMPFILE1
            rm -f $TEMPFILE2
         else 
            echo "$parm_name=$parm_value ; export $parm_name" >> setparm.${EBMSYS}.${JON}.${PROC_LEVEL}
         fi
         if [ "$VERBOSE" = "YES" ]
         then
            print_message SETPARM "$parm_name=$parm_value"
         fi
      done
   fi
fi
exit 0
