#! /bin/ksh
#
#  Luke lin      APRIL 2006
#
# This script removes selected data files from specified
# com sub-directories listed in cleanup_thin_com_sub 
# on the IBM-SP.
#####################################################################

#thin_com=YES
thin_com_prod=YES
thin_com_para=YES

#########################################################################
#
#  Thin /com sub-directories
#
#########################################################################
if test "$thin_com" = "YES"
then
   grep -v "#" $PARMutil/cleanup_thin_com_sub | sed "s/ //g" > tmp_clean_sub
   for clean_list in `cat tmp_clean_sub`
   do
      RUN=`echo $clean_list | awk -F"|" '{print $1}'`
      NET=`echo $clean_list | awk -F"|" '{print $2}'`
      SUBDIR=`echo $clean_list | awk -F"|" '{print $3}'`
      directory=`echo $clean_list | awk -F"|" '{print "/com/"$1"/\$clean_envir"}'`
      cycle_flag=`echo $clean_list | awk -F"|" '{print $4}'`
      prod_keep00=`echo $clean_list | awk -F"|" '{print $5}'`
      prod_keep12=`echo $clean_list | awk -F"|" '{print $6}'`
      para_keep00=`echo $clean_list | awk -F"|" '{print $7}'`
      para_keep12=`echo $clean_list | awk -F"|" '{print $8}'`
      test_keep00=`echo $clean_list | awk -F"|" '{print $9}'`
      test_keep12=`echo $clean_list | awk -F"|" '{print $10}'`

      for clean_envir in prod para test
      do
         if test `eval echo $"thin_com_${clean_envir}"` = "YES"
         then
            com=`eval echo $directory`
            no_keep=`eval echo $"${clean_envir}_keep${cyc}"`

            grep -v "#" $PARMutil/cleanup_rm_com | sed "s/ //g" | grep $NET | grep $RUN > tmp_clean_com
            if test "$clean_envir" = "prod"
            then
               how_many_days_in_com=`cat tmp_clean_com  | awk -F"|" '{print $3}'`
            elif test "$clean_envir" = "para"
            then
               how_many_days_in_com=`cat tmp_clean_com  | awk -F"|" '{print $5}'`
            elif test "$clean_envir" = "test"
            then
               how_many_days_in_com=`cat tmp_clean_com  | awk -F"|" '{print $7}'`
            fi

            ######### find how many days need to be thin out  ###############
            #nonday=$how_many_days_in_com
            let nonday=how_many_days_in_com-no_keep-2
            let nonhour=no_keep*24
            rm -rf datefile
            while [ $nonday -ge 0 ]
            do
              each_date=`/nwprod/util/exec/ndate -$nonhour $PDYm1$cyc |cut -c1-8`
              echo $each_date >>datefile
              nonday=`expr $nonday - 1`
              nonhour=`expr $nonhour + 24`
            done

            #date_string=`cat datefile`
            #echo date_string="${date_string}"
            #################################################################
            #exit

            nhour_begin=0
            let nhour_end=no_keep*24+cyc-48
            rm -rf delete_file

            for RMDAY in `cat datefile`
            do
               if test "$cycle_flag" = "Y"
               then
                  nhour_delete=0
                  echo " Remove $com/$NET.$RMDAY/${cyc}/${SUBDIR}: --- from $nhour_delete to $nhour_end" >> delete_file
                  #rmfile=$com/$NET.$RMDAY/${cyc}/${SUBDIR}/*.${SUBDIR}*anl
                  rm $com/$NET.$RMDAY/${cyc}/${SUBDIR}/*.${SUBDIR}*anl
                  #echo $rmfile >> delete_file
                  if [ "$cyc" =  "00" ]; then
                     #rmfile=$com/$NET.$RMDAY/06/${SUBDIR}/*.${SUBDIR}*anl
                     rm $com/$NET.$RMDAY/06/${SUBDIR}/*.${SUBDIR}*anl
                     #echo $rmfile >> delete_file
                  elif [ "$cyc" =  "12" ]; then
                     #rmfile=$com/$NET.$RMDAY/18/${SUBDIR}/*.${SUBDIR}*anl
                     rm $com/$NET.$RMDAY/18/${SUBDIR}/*.${SUBDIR}*anl
                     #echo $rmfile >> delete_file
                  fi
                  while [ "$nhour_delete" -le "$nhour_end" ]
                  do
                    if [ $nhour_delete -lt 10 ]; then
                       nhour_delete=0${nhour_delete}
                    fi
                    #rmfile=$com/$NET.$RMDAY/${cyc}/${SUBDIR}/*.${SUBDIR}f${nhour_delete}
                    rm $com/$NET.$RMDAY/${cyc}/${SUBDIR}/*.${SUBDIR}f${nhour_delete}
                    #echo $rmfile >> delete_file
                    #rmfile=$com/$NET.$RMDAY/${cyc}/${SUBDIR}/*.${SUBDIR}if${nhour_delete}
                    rm $com/$NET.$RMDAY/${cyc}/${SUBDIR}/*.${SUBDIR}if${nhour_delete}
                    #echo $rmfile >> delete_file
                    if [ "$cyc" =  "00" ]; then
                       #rmfile=$com/$NET.$RMDAY/06/${SUBDIR}/*.${SUBDIR}f${nhour_delete}
                       rm $com/$NET.$RMDAY/06/${SUBDIR}/*.${SUBDIR}f${nhour_delete}
                       #echo $rmfile >> delete_file
                       #rmfile=$com/$NET.$RMDAY/06/${SUBDIR}/*.${SUBDIR}if${nhour_delete}
                       rm $com/$NET.$RMDAY/06/${SUBDIR}/*.${SUBDIR}if${nhour_delete}
                       #echo $rmfile >> delete_file
                    elif [ "$cyc" =  "12" ]; then
                       #rmfile=$com/$NET.$RMDAY/18/${SUBDIR}/*.${SUBDIR}f${nhour_delete}
                       rm $com/$NET.$RMDAY/18/${SUBDIR}/*.${SUBDIR}f${nhour_delete}
                       #echo $rmfile >> delete_file
                       #rmfile=$com/$NET.$RMDAY/18/${SUBDIR}/*.${SUBDIR}if${nhour_delete}
                       rm $com/$NET.$RMDAY/18/${SUBDIR}/*.${SUBDIR}if${nhour_delete}
                       #echo $rmfile >> delete_file
                    fi
                    nhour_delete=`expr $nhour_delete + 6`
                  done
                  nhour_end=`expr $nhour_end + 24`
               elif test "$cycle_flag" = "N"
               then
                  msg="CYC Flag Set to NO - NO CYC subdir needed "
                  nhour_delete=0
                  echo " in day $RMDAY --- from $nhour_delete to $nhour_end" >> delete_file
                  echo " Remove $com/$NET.$RMDAY/${SUBDIR}: --- from $nhour_delete to $nhour_end" >> delete_file
                  #rmfile=$com/$NET.$RMDAY/${SUBDIR}/*.${SUBDIR}*anl
                  rm $com/$NET.$RMDAY/${SUBDIR}/*.${SUBDIR}*anl
                  #echo $rmfile >> delete_file
                  if [ "$cyc" =  "00" ]; then
                     #rmfile=$com/$NET.$RMDAY/${SUBDIR}/*.${SUBDIR}*anl
                     rm $com/$NET.$RMDAY/${SUBDIR}/*.${SUBDIR}*anl
                     #echo $rmfile >> delete_file
                  elif [ "$cyc" =  "12" ]; then
                     #rmfile=$com/$NET.$RMDAY/${SUBDIR}/*.${SUBDIR}*anl
                     rm $com/$NET.$RMDAY/${SUBDIR}/*.${SUBDIR}*anl
                     #echo $rmfile >> delete_file
                  fi
                  while [ "$nhour_delete" -le "$nhour_end" ]
                  do
                    if [ $nhour_delete -lt 10 ]; then
                       nhour_delete=0${nhour_delete}
                    fi
                    #rmfile=$com/$NET.$RMDAY/${SUBDIR}/*.${SUBDIR}f${nhour_delete}
                    rm $com/$NET.$RMDAY/${SUBDIR}/*.${SUBDIR}f${nhour_delete}
                    #echo $rmfile >> delete_file
                    #rmfile=$com/$NET.$RMDAY/${SUBDIR}/*.${SUBDIR}if${nhour_delete}
                    rm $com/$NET.$RMDAY/${SUBDIR}/*.${SUBDIR}if${nhour_delete}
                    #echo $rmfile >> delete_file
                    if [ "$cyc" =  "00" ]; then
                       #rmfile=$com/$NET.$RMDAY/${SUBDIR}/*.${SUBDIR}f${nhour_delete}
                       rm $com/$NET.$RMDAY/${SUBDIR}/*.${SUBDIR}f${nhour_delete}
                       #echo $rmfile >> delete_file
                       #rmfile=$com/$NET.$RMDAY/${SUBDIR}/*.${SUBDIR}if${nhour_delete}
                       rm $com/$NET.$RMDAY/${SUBDIR}/*.${SUBDIR}if${nhour_delete}
                       #echo $rmfile >> delete_file
                    elif [ "$cyc" =  "12" ]; then
                       #rmfile=$com/$NET.$RMDAY/${SUBDIR}/*.${SUBDIR}f${nhour_delete}
                       rm $com/$NET.$RMDAY/${SUBDIR}/*.${SUBDIR}f${nhour_delete}
                       #echo $rmfile >> delete_file
                       #rmfile=$com/$NET.$RMDAY/${SUBDIR}/*.${SUBDIR}if${nhour_delete}
                       rm $com/$NET.$RMDAY/${SUBDIR}/*.${SUBDIR}if${nhour_delete}
                       #echo $rmfile >> delete_file
                    fi
                    nhour_delete=`expr $nhour_delete + 6`
                  done
                  nhour_end=`expr $nhour_end + 24`
               else
                  rmfile=NONE
                  msg="No Flag Set for ${com}/${NET} in cleanup_thin_com table"
                  postmsg "$jlogfile" "$msg"
               fi
            done
   
         fi
      done
   done
fi

