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


if [ -z "$PARM" ]
then
  echo "BPXBATCH: Error: PARM parameter not found."
  if [ "a$VALIDATE" = "ay" ]
  then
    echo 0 > status.${JON}
    exit 0
  else
    echo 1 > status.${JON}
    exit 1
  fi
fi

if [ ! -z "$DD_STDIN" ]
then
  REDIRECT_ENV=" <$DD_STDIN"
else
  REDIRECT_ENV=" "
fi

if [ ! -z "$DD_STDOUT" ]
then
  REDIRECT_ENV="$REDIRECT_ENV >$DD_STDOUT"
fi

if [ ! -z "$DD_STDERR" ]
then
  REDIRECT_ENV="$REDIRECT_ENV 2>$DD_STDERR"
fi

TMPPARM=`echo "${PARM}_" | sed -e 's/_/ /'`
PGMTYPE=`echo "$TMPPARM" | cut -f1 -d' '`
ACTUALPARM=`echo "$TMPPARM" | cut -f2 -d' ' | sed -e 's/_$//'`; export ACTUALPARM

ARGV=`echo "${ACTUALPARM}_" | sed -e 's/_/ /'`
PGMNAME=`echo "$ARGV" | cut -f1 -d' '`; export PGMNAME
PARM=`echo "$ARGV" | cut -f2 -d' ' | sed -e 's/_$//'`; export PARM
if [ "$PARM" = "" ]
then
  unset PARM
  if [ "a$VERBOSE" = "aYES" ]
  then
    echo "BPXBATCH: Executing PGMNAME=$PGMNAME"
    echo "                    PARM=null"
    echo "                    $REDIRECT_ENV"
  fi
else
  if [ "a$VERBOSE" = "aYES" ]
  then
    echo "BPXBATCH: Executing PGMNAME=$PGMNAME"
    echo "                    PARM=`ebmsed EBM_CONVERT_PARM_STRING $PARM`"
    echo "                    $REDIRECT_ENV"
  fi
fi

if [ -z "$SHELL" ]
then
  SHELL=sh; export SHELL
fi

case $PGMTYPE in
  SH|sh) 
    PARM=`ebmsed EBM_CONVERT_PARM_STRING "$PARM"`
    if [ "$PGMNAME" = "" ]
    then
      if [ -z "$LN_SYSIN" ]
      then
        echo "BPXBATCH: Error: SYSIN not defined."
        if [ "a$VALIDATE" = "ay" ]
        then
          echo 0 > status.${JON}
          exit 0
        else
          echo 1 > status.${JON}
          exit 1
        fi
      else
        if [ "a$VALIDATE" = "ay" ]
        then
          echo 0 > status.${JON}
          exit 0
        fi
        case $EBM_OS_NAME in
          NT) eval `ebmsed "$SHELL $LN_SYSIN $REDIRECT_ENV"`
              CONDCODE=$?
              ;;
          *)  eval $SHELL $LN_SYSIN $REDIRECT_ENV
              CONDCODE=$?
              ;;
        esac
      fi
    else
      if [ "a$VALIDATE" = "ay" ]
      then
        echo 0 > status.${JON}
        exit 0
      fi
      case $EBM_OS_NAME in
        NT) eval `ebmsed "$SHELL -c \"$PGMNAME $PARM\" $REDIRECT_ENV"`
            CONDCODE=$?
            ;;
        *)  eval $SHELL -c \"$PGMNAME $PARM\" $REDIRECT_ENV
            CONDCODE=$?
            ;;
      esac
    fi
  ;;
  PGM|pgm)
    case $EBM_OS_NAME in
      NT) eval `ebmsed "$PACK/bin/btsh $PUBLIC/bin/execpgm.btsh $REDIRECT_ENV"`
          CONDCODE=$?
          ;;
      *)  eval $PACK/bin/btsh $PUBLIC/bin/execpgm.btsh $REDIRECT_ENV
          CONDCODE=$?
          ;;
    esac
  ;;
  *) 
  echo "BPXBATCH: Error: PARM parameter must specify SH or PGM."
  if [ "a$VALIDATE" = "ay" ]
  then
    echo 0 > status.${JON}
    exit 0
  else
    echo 1 > status.${JON}
    exit 1
  fi
  ;;
esac


if [ "a$VALIDATE" = "ay" ]
then
  echo 0 > status.${JON}
  exit 0
fi
echo $CONDCODE > status.${JON}
exit $CONDCODE
