#!/bin/csh -f
#
#       %W% %E%
#
# args server pid

set server  = $1
set gig_pid = $2

set host = `uname -n`
set curf = curf_${host}
set rendir = ${GIG_D_ROOT}/projects/renmanadm/${curf}

touch ${rendir}/nodeflag_2
echo 1 > ${rendir}/nodeturn
set turn = `cat ${rendir}/nodeturn`
set turn = 1

while ( ( -e ${rendir}/nodeflag_1 ) && ( $turn == '1' ) )
  set turn = `cat ${rendir}/nodeturn`
end
set entry = `fgrep "$server $gig_pid" ${rendir}/current_nodes`
/bin/rm -f ${rendir}/nodeflag_2

if ( $#entry > 4 ) then
  set get_date = `date`
  if ( $get_date[1] != 'Sat' && $get_date[1] != 'Sun' ) then
    set cflag = 0
    set sflag = 0
    set get_time = $get_date[4]
    set get_digi = `echo $get_time | cut -c1-2,4-5`
    set start = $entry[5]
    set stop  = $entry[6]
    if ( $entry[1] == 'susp' ) then
      if ( $start > $stop ) then
        if ( $get_digi >= $start || $get_digi < $stop ) then
          gigrs_rshell $server kill -CONT $gig_pid
          set cflag = 1
        endif
      else
        if ( $get_digi >= $start && $get_digi < $stop ) then
          gigrs_rshell $server kill -CONT $gig_pid
          set cflag = 1
        endif
      endif
    else if ( $entry[1] == 'runs' ) then
      if ( $start > $stop ) then
        if ( !( $get_digi >= $start || $get_digi < $stop ) ) then
          gigrs_rshell $server kill -STOP $gig_pid
          set sflag = 1
        endif
      else
        if ( !( $get_digi >= $start && $get_digi < $stop ) ) then
          gigrs_rshell $server kill -STOP $gig_pid
          set sflag = 1
        endif
      endif
    endif

    if ( $cflag || $sflag ) then
      touch ${rendir}/nodeflag_2
      echo 1 > ${rendir}/nodeturn
      set turn = `cat ${rendir}/nodeturn`
      while ( ( -e ${rendir}/nodeflag_1 ) && ( $turn == '1' ) )
        set turn = `cat ${rendir}/nodeturn`
      end
      fgrep -v "$server $gig_pid" ${rendir}/current_nodes >! ${rendir}/current_nodes_tmp
      if ( $cflag ) then
        set entry[1] = 'runs' 
      else
        set entry[1] = 'susp' 
      endif
      echo $entry >> ${rendir}/current_nodes_tmp
      mv ${rendir}/current_nodes_tmp ${rendir}/current_nodes
      /bin/rm -f ${rendir}/nodeflag_2

      touch ${rendir}/jobsflag_2
      echo 1 > ${rendir}/jobsturn
      set turn = `cat ${rendir}/jobsturn`
      while ( ( -e ${rendir}/jobsflag_1 ) && ( $turn == '1' ) )
        set turn = `cat ${rendir}/jobsturn`
      end
      fgrep -v "$server $gig_pid" ${rendir}/running_jobs >! ${rendir}/running_jobs_tmp
      set entry = `fgrep "$server $gig_pid" ${rendir}/running_jobs`
      if ( $cflag ) then
        set entry[1] = 'runs' 
      else
        set entry[1] = 'susp' 
      endif
      echo $entry >> ${rendir}/running_jobs_tmp
      mv ${rendir}/running_jobs_tmp ${rendir}/running_jobs
      /bin/rm -f ${rendir}/jobsflag_2

    endif
  endif
endif
