676d41ead6eb958c8b5bd3b462cc7b86a61b244a
[htsworkflow.git] / htswdataprod / scripts / MPListener
1 #!/bin/sh                                                                                                                           
2 # Solexa Pipeline "Listener". Checks for finished.txt in each main directory of the pipeline                                                                      
3
4 # some vars
5 #exptrackmainsc="$HOME/EXPTRACK/exp_track_main.py"
6 exptrackmainsc="exp_track_main.py" 
7 fcid=$1
8 fullpath=$2
9 runfolder=`echo $fullpath | sed -e 's/^.*\///'`
10 tocycle=$3
11
12 ## Make sure we find the Firecrest folder, then check "Makefile" in the 3 directories
13 firecrestdir=`ls $fullpath/Data | grep "^C1-$tocycle.*_Firecrest.*"`
14 countdirs=`ls $fullpath/Data | grep -c "^C1-$tocycle.*_Firecrest.*"`
15 if [ $countdirs == 1 ]
16 then
17   echo "" ## ok. firecrest folder '$firecrestdir' found"
18 else
19   if [ $countdirs -gt 1 ]
20   then
21     echo "ERROR: Found too many ($countdirs) firecrest directories. You need to be more specific. Found:"
22     echo ""
23     echo $firecrestdir
24     ## python $exptrackmainsc updsts $fcid $runfolder 3 ERROR:_Need_Specific_Firecrest_Dir
25     exit
26   else
27     echo "MPListener ERROR: Firecrest directory NOT FOUND."
28     ## python $exptrackmainsc updsts $fcid $runfolder 3 ERROR:_Firecrest_Dir_Not_Found
29     exit
30   fi
31 fi
32
33
34 #firecrestdir=`ls Data | grep C1.*_Firecrest.*_encode`   
35 # firecrestdir=`ls Data | grep C1.*_Firecrest.*_*`
36 # if [ -d Data/$firecrestdir ]
37 # then echo "firecrest folder '$firecrestdir' found"
38 # else echo "firecrest folder '$firecrestdir' NOT found. can not check further"
39 # fi
40
41 # ---------------------- Check for finished.txt in each main directory of the pipeline ------------                                
42 firecrestfinished=$fullpath/Data/$firecrestdir/finished.txt
43 bustfinished=$fullpath/Data/$firecrestdir/Bustard*_*/finished.txt
44 gerfinished=$fullpath/Data/$firecrestdir/Bustard*_*/GERALD_*/finished.txt
45 # Wait for 48 hours max                                                                                                  
46 timeremain=`expr 60 \* 60 \* 72`
47 interval=10
48
49 ## ---- Wait for Firecrest -----                                                                                                    
50 while [ ! -f $firecrestfinished ] && [ $timeremain -gt 0 ]
51 do
52   #echo "wating $interval secs more to check for firecrestfinished ($timeremain secs left)"
53   sleep $(( $interval ))
54   timeremain=`expr $timeremain - $interval`
55 done
56
57 if [ $timeremain -gt 0 ]
58 then
59   echo "Firecrest finished at `date`"
60   python $exptrackmainsc updsts $fcid $runfolder 1 Firecrest_finished
61 else
62   echo "Script time expired while waiting for Firecrest to finish."
63   python $exptrackmainsc updsts $fcid $runfolder 2 Script_time_expired_during_Firecrest
64 fi
65
66 ## -------- Wait for Bustard ------                                                                                  
67 while [ ! -f $bustfinished ] && [ $timeremain -gt 0 ]
68 do
69   #echo "wating $interval secs more to check for bustfinished ($timeremain secs left)"
70   sleep $(( $interval ))
71   timeremain=`expr $timeremain - $interval`
72 done
73
74 if [ $timeremain -gt 0 ]
75 then
76   echo "Bustard finished at `date`"
77   python $exptrackmainsc updsts $fcid $runfolder 1 Bustard_finished
78 else
79   echo "Script time expired while waiting for Bustard to finish."
80   python $exptrackmainsc updsts $fcid $runfolder 2 Script_time_expired_during_Bustard
81 fi
82
83 ## -------- Wait for Gerald ------                                                                                     
84 while [ ! -f $gerfinished ] && [ $timeremain -gt 0 ]
85 do
86   #echo "wating $interval secs more to check for $gerfinished  ($timeremain secs left)"
87   sleep $(( $interval ))
88   timeremain=`expr $timeremain - $interval`
89 done
90
91
92 if [ $timeremain -gt 0 ]
93 then
94   echo "Gerald finished at `date`"
95   python $exptrackmainsc updsts $fcid $runfolder 3 Gerald_finished
96   echo "Finished LISTENING TO SOLEXA PIPELINE ..."
97   echo "Starting DATA COLLECTION PHASE ..."
98   echo ".. here CollectData starts. Will run from the 'runner' bot."
99   ./MPCollectData $fcid $fullpath
100 else
101   echo "Script time expired while waiting for Gerald to finish."
102   python $exptrackmainsc updsts $fcid $runfolder 2 Script_time_expired_during_Gerald
103 fi
104
105 echo "exiting MPListner .."
106 exit
107
108 ## ---------------------------------------------------------------------------------