/[MITgcm]/mitgcm.org/front_content/parse_emails
ViewVC logotype

Diff of /mitgcm.org/front_content/parse_emails

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.19 by jmc, Mon Feb 2 19:16:45 2009 UTC revision 1.24 by jmc, Sun Oct 31 02:25:05 2010 UTC
# Line 35  INDIR="/u/u2/jmc/Mail/MITgcm-test" Line 35  INDIR="/u/u2/jmc/Mail/MITgcm-test"
35  BASEDIR="/u/u0/httpd/html/testing/results"  BASEDIR="/u/u0/httpd/html/testing/results"
36  monthDir=`date +%Y`"_"`date +%m`  monthDir=`date +%Y`"_"`date +%m`
37  OUTDIR=  OUTDIR=
38  TEMPDIR=./ptmp  TEMPDIR=/tmp/prc_emails
39    ERRMSG=/tmp/tmp.$$
40  MUNPACK=munpack  MUNPACK=munpack
41  ADDRERR=  ADDRERR=
42  PRT=1  PRT=1
# Line 115  if test ! -e $OUTDIR ; then Line 116  if test ! -e $OUTDIR ; then
116          date          date
117          echo "ERROR: directory \"$OUTDIR\" doesn't exist and can't be created"          echo "ERROR: directory \"$OUTDIR\" doesn't exist and can't be created"
118          exit 3          exit 3
119        else
120            echo "Successfully created new dir: \"$OUTDIR\""
121      fi      fi
122      chgrp gcmpack $OUTDIR      chgrp gcmpack $OUTDIR
123      chmod 775 $OUTDIR      chmod 775 $OUTDIR
# Line 138  fi Line 141  fi
141    
142  for file in $all_files ; do  for file in $all_files ; do
143    
144      #  create local copy      #-- create local copy
145      test -e $TEMPDIR  &&  rm -rf $TEMPDIR      test -e $TEMPDIR  &&  rm -rf $TEMPDIR
146      mkdir $TEMPDIR      mkdir $TEMPDIR
147      RETVAL=$?      RETVAL=$?
# Line 148  for file in $all_files ; do Line 151  for file in $all_files ; do
151      fi      fi
152      if test "x$RETVAL" != x0 ; then      if test "x$RETVAL" != x0 ; then
153        if test "x$ADDRERR" != x ; then        if test "x$ADDRERR" != x ; then
154          echo "parsing email error" > tmp.$$          echo "parsing email error" > $ERRMSG
155          echo " processing file: '$INDIR/$file'" >> tmp.$$          echo " processing file: '$INDIR/$file'" >> $ERRMSG
156          echo -n "'mkdir $TEMPDIR' or 'cp $INDIR/$file $TEMPDIR'" >> tmp.$$          echo -n "'mkdir $TEMPDIR' or 'cp $INDIR/$file $TEMPDIR'" >> $ERRMSG
157          echo " returns error $RETVAL" >> tmp.$$          echo " returns error $RETVAL" >> $ERRMSG
158          mail -s 'parse_emails err_0' $ADDRERR < tmp.$$          mail -s 'parse_emails err_0' $ADDRERR < $ERRMSG
159          rm -f tmp.$$          rm -f $ERRMSG
160        fi        fi
161        mv -f $INDIR"/"$file $INDIR"/../fail2process/"$file        mv -f $INDIR"/"$file $INDIR"/../fail2process/"$file
162        continue        continue
163      fi      fi
164    
165      #  ignore multi-part messages      #-- ignore multi-part messages
166      grep "Content-Type: message/partial" $INDIR"/"$file > /dev/null 2>&1      grep "Content-Type: message/partial" $INDIR"/"$file > /dev/null 2>&1
167      RETVAL=$?      RETVAL=$?
168      if test "x$RETVAL" = x0 ; then      if test "x$RETVAL" = x0 ; then
169        if test "x$ADDRERR" != x ; then        if test "x$ADDRERR" != x ; then
170          echo "parsing email error" > tmp.$$          echo "parsing email error" > $ERRMSG
171          echo 'grep "Content-Type: message/partial" returns error:' $RETVAL >> tmp.$$          echo 'grep "Content-Type: message/partial" returns error:' $RETVAL >> $ERRMSG
172          ls -l $INDIR"/"$file >> tmp.$$          ls -l $INDIR"/"$file >> $ERRMSG
173          mail -s 'parse_emails err_1' $ADDRERR < tmp.$$          mail -s 'parse_emails err_1' $ADDRERR < $ERRMSG
174          rm -f tmp.$$          rm -f $ERRMSG
175        fi        fi
176        mv -f $INDIR"/"$file $INDIR"/../fail2process/"$file        mv -f $INDIR"/"$file $INDIR"/../fail2process/"$file
177        continue        continue
178      fi      fi
179    
180      #  munpack      #-- munpack
181      mun=`( cd $TEMPDIR ; $MUNPACK $file | cut -d ' ' -f 1 | head -1 )`      mun=`( cd $TEMPDIR ; $MUNPACK $file | cut -d ' ' -f 1 | head -1 )`
182      RETVAL=$?      RETVAL=$?
183      if test "x$RETVAL" != x0 ; then      if test "x$RETVAL" != x0 ; then
184        if test "x$ADDRERR" != x ; then        if test "x$ADDRERR" != x ; then
185          echo "parsing email error" > tmp.$$          echo "parsing email error" > $ERRMSG
186          echo "$MUNPACK $file returns error: $RETVAL" >> tmp.$$          echo "$MUNPACK $file returns error: $RETVAL" >> $ERRMSG
187          ls -l $INDIR"/"$file >> tmp.$$          ls -l $INDIR"/"$file >> $ERRMSG
188          mail -s 'parse_emails err_2' $ADDRERR < tmp.$$          mail -s 'parse_emails err_2' $ADDRERR < $ERRMSG
189          rm -f tmp.$$          rm -f $ERRMSG
190        fi        fi
191        mv -f $INDIR"/"$file $INDIR"/../fail2process/"$file        mv -f $INDIR"/"$file $INDIR"/../fail2process/"$file
192        continue        continue
193      fi      fi
194    
195      #  un-tar      #-- un-tar
196      ( cd $TEMPDIR ; tar -xzvf $mun > out )      #( cd $TEMPDIR ; tar -xzvf $mun > out )
197        #   to remove small files "._mydir" that some MAC OS are adding
198        #   (for each file or dir) to a tar-file, use option "--exclude=":
199        ( cd $TEMPDIR ; tar -xzvf $mun --exclude="._*" > out )
200      RETVAL=$?      RETVAL=$?
201      if test "x$RETVAL" != x0 ; then      if test "x$RETVAL" != x0 ; then
202        if test "x$ADDRERR" != x ; then        if test "x$ADDRERR" != x ; then
203          echo "parsing email error" > tmp.$$          echo "parsing email error" > $ERRMSG
204          echo "tar -xzvf $mun returns error:" $RETVAL >> tmp.$$          echo "tar -xzvf $mun returns error:" $RETVAL >> $ERRMSG
205          ls -l $INDIR"/"$file >> tmp.$$          ls -l $INDIR"/"$file >> $ERRMSG
206          ls -l $mun >> tmp.$$          ls -l $mun >> $ERRMSG
207          mail -s 'parse_emails err_3' $ADDRERR < tmp.$$          mail -s 'parse_emails err_3a' $ADDRERR < $ERRMSG
208          rm -f tmp.$$          rm -f $ERRMSG
209        fi        fi
210        mv -f $INDIR"/"$file $INDIR"/../fail2process/"$file        mv -f $INDIR"/"$file $INDIR"/../fail2process/"$file
211        continue        continue
212      fi      fi
213      tdir=`cat $TEMPDIR"/out" | head -1 | sed -e 's|^./||g' | cut -d '/' -f 1`      tdir=`cat $TEMPDIR"/out" | head -1 | sed -e 's|^./||g' | cut -d '/' -f 1`
214      rm -f $TEMPDIR"/out"      if test -d $TEMPDIR/$tdir ; then
215          rm -f $TEMPDIR"/out"
216        else
217          if test "x$ADDRERR" != x ; then
218            echo "parsing email error" > $ERRMSG
219            echo " fail to get a dir output name 'tdir=$tdir'" >> $ERRMSG
220            echo " from tar file '$TEMPDIR/$mun'" >> $ERRMSG
221            mail -s 'parse_emails err_3b' $ADDRERR < $ERRMSG
222            rm -f $ERRMSG
223          fi
224          mv -f $INDIR"/"$file $INDIR"/../fail2process/"$file
225          continue
226        fi
227    
228      #  select which Monthly Output Dir:      #-- select which Monthly Output Dir:
229      locDir=$OUTDIR      locDir=$OUTDIR
230      if test "x$monthDir" != x0 ; then      if test "x$monthDir" != x0 ; then
231        dd=`echo $tdir | sed 's/_/ /g' | awk '{ for(i=1;i<=NF;i++) print $i }'\        dd=`echo $tdir | sed 's/_/ /g' | awk '{ for(i=1;i<=NF;i++) print $i }'\
# Line 223  for file in $all_files ; do Line 241  for file in $all_files ; do
241          if test ! -d $locDir ; then          if test ! -d $locDir ; then
242            if test $PRT = 2 ; then echo "NO DIR: '$locDir' => '$tdir' POSTPONED" ; fi            if test $PRT = 2 ; then echo "NO DIR: '$locDir' => '$tdir' POSTPONED" ; fi
243            if test "x$ADDRERR" != x ; then            if test "x$ADDRERR" != x ; then
244              echo "parsing email error" > tmp.$$              echo "parsing email error" > $ERRMSG
245              echo "no dir '$locDir' for outp. '$tdir'" > tmp.$$              echo "no dir '$locDir' for outp. '$tdir'" > $ERRMSG
246              ls -l $INDIR"/"$file >> tmp.$$              ls -l $INDIR"/"$file >> $ERRMSG
247              mail -s 'parse_emails err_4' $ADDRERR < tmp.$$              mail -s 'parse_emails err_4' $ADDRERR < $ERRMSG
248              rm -f tmp.$$              rm -f $ERRMSG
249            fi            fi
250            continue            continue
251          fi          fi
# Line 235  for file in $all_files ; do Line 253  for file in $all_files ; do
253        fi        fi
254      fi      fi
255    
256      #  copy to $locDir and rename if necessary      #-- copy to $locDir and rename if necessary
257      sdir=$tdir      sdir=$tdir
258      if test -e $locDir"/"$tdir ; then      if test -e $locDir"/"$tdir ; then
259            sdir=`echo $tdir | sed 's/_[0-9]*$//'`
260          ad=0          ad=0
261          while test -e $locDir"/"$tdir"_"$ad ; do          while test -e $locDir"/"$sdir"_"$ad ; do
262              ad=$(( $ad + 1 ))              ad=$(( $ad + 1 ))
263          done          done
264          sdir=$tdir"_"$ad          sdir=$sdir"_"$ad
265      fi      fi
266      if test $PRT = 2 ; then      if test $PRT = 2 ; then
267        if test "x$locDir" = "x$OUTDIR"        if test "x$locDir" = "x$OUTDIR"
268        then echo " '$sdir'"        then echo " '$sdir' ($file)"
269        else echo " '$sdir' => '$locDir'"        else echo " '$sdir' ($file) => '$locDir'"
270        fi        fi
271      fi      fi
272      mv $TEMPDIR"/"$tdir $locDir"/"$sdir > /dev/null 2>&1      mv $TEMPDIR"/"$tdir $locDir"/"$sdir > /dev/null 2>&1
273      RETVAL=$?      RETVAL=$?
274      if test "x$RETVAL" != x0 ; then      if test "x$RETVAL" != x0 ; then
275        if test "x$ADDRERR" != x ; then        if test "x$ADDRERR" != x ; then
276          echo "parsing email error" > tmp.$$          echo "parsing email error" > $ERRMSG
277          echo "mv $TEMPDIR/$tdir $locDir/$sdir returns error:" $RETVAL >> tmp.$$          echo "mv $TEMPDIR/$tdir $locDir/$sdir returns error:" $RETVAL >> $ERRMSG
278          echo -n "in dir: $TEMPDIR : " ; ls -l $TEMPDIR  >> tmp.$$          echo -n "in dir: $TEMPDIR : " ; ls -l $TEMPDIR  >> $ERRMSG
279          echo -n "in dir: $OUTDIR : " ; ls -l $locDir  >> tmp.$$          echo -n "in dir: $OUTDIR : " ; ls -l $locDir  >> $ERRMSG
280          mail -s 'parse_emails err_5' $ADDRERR < tmp.$$          mail -s 'parse_emails err_5' $ADDRERR < $ERRMSG
281          rm -f tmp.$$          rm -f $ERRMSG
282        fi        fi
283        mv -f $INDIR"/"$file $INDIR"/../fail2process/"$file        mv -f $INDIR"/"$file $INDIR"/../fail2process/"$file
284        continue        continue
285      fi      fi
286      chmod -R a+rx $locDir"/"$sdir > /dev/null 2>&1      chmod -R a+rx $locDir"/"$sdir > /dev/null 2>&1
287    
288      #  remove the original file      #-- remove the original file
289      rm -f $INDIR"/"$file      rm -f $INDIR"/"$file
290    
291  done  done

Legend:
Removed from v.1.19  
changed lines
  Added in v.1.24

  ViewVC Help
Powered by ViewVC 1.1.22