#!/bin/sh # # ======================================================================== # # * # * This file is part of MARS, the MAGIC Analysis and Reconstruction # * Software. It is distributed to you in the hope that it can be a useful # * and timesaving tool in analysing Data of imaging Cerenkov telescopes. # * It is distributed WITHOUT ANY WARRANTY. # * # * Permission to use, copy, modify and distribute this software and its # * documentation for any purpose is hereby granted without fee, # * provided that the above copyright notice appear in all copies and # * that both that copyright notice and this permission notice appear # * in supporting documentation. It is provided "as is" without express # * or implied warranty. # * # # # Author(s): Daniela Dorner 08/2005 # # Copyright: MAGIC Software Development, 2000-2006 # # # ======================================================================== # # This script produces the plots from all root-files in the web directory # # After checking, if the script is already running, the plots are produced: # With the programm showplot a ps-file is written, from which the png # files are produced. # user=`whoami` program=dowebplots source /home/$user/Mars/datacenter/scripts/sourcefile set -C cd $mars datetime=`date +%F-%H-%M-%S` webdir=/www/htdocs/datacenter scriptlogpath=$logpath/run/dowebplots/`date +%Y/%m/%d` makedir $scriptlogpath scriptlog=$scriptlogpath/dowebplots-$datetime.log date >> $scriptlog 2>&1 while getopts p: opts do case $opts in p) type=$OPTARG echo "got programname: $type" >> $scriptlog 2>&1 ;; ?) echo "usage: $(basename $0) -p programname" >> $scriptlog 2>&1 ;; esac done if [ "$type" = "" ] then echo "no program name given -> exit" >> $scriptlog 2>&1 echo "usage: $(basename $0) -p programname" >> $scriptlog 2>&1 date >> $scriptlog 2>&1 exit fi # check if script is already running lockfile=$lockpath/lock-dowebplots-$type.txt checklock >> $scriptlog 2>&1 #finding all rootfiles in the webdirectory, that were modified in the last 3 days #this are all statusdisplays rootfiles=`find $webdir/$type/ -maxdepth 10 -name '*.root' -mtime -3 | grep -v '_I_' | grep -v '_Y_' | grep -v 'subsystemdata' | grep -v 'star_lapalma' | grep -v 'summary'` #exit if no rootfiles are found if [ "$rootfiles" = "" ] then echo "nothing to do -> exit" >> $scriptlog 2>&1 rm -v $lockfile >> $scriptlog 2>&1 date >> $scriptlog 2>&1 exit fi #produce plots for each rootfile for rootfile in ${rootfiles[@]} do date >> $scriptlog 2>&1 #get names of the psfile and the #pngfiles (1 per tab in the statusdiplay) psfile=`echo $rootfile | sed -e 's/.root$/.ps/g'` tabfile=`echo $rootfile | sed -e 's/.root$/-tab/g'` echo "rootfile: $rootfile" >> $scriptlog 2>&1 echo "psfile: $psfile" >> $scriptlog 2>&1 echo "tabfile: $tabfile" >> $scriptlog 2>&1 #get date of root- and psfile daterootfile=`date +%Y%m%d -r $rootfile` >> $scriptlog 2>&1 datepsfile=`date +%Y%m%d -r $psfile` >> $scriptlog 2>&1 if [ "$datepsfile" = "" ] then echo "date of psfile is empty -> the file $psfile doesn't exist" >> $scriptlog 2>&1 echo " -> setting date to 0 and producing psfile..." >> $scriptlog 2>&1 datepsfile=0 fi echo "checking date..." >> $scriptlog 2>&1 echo "date of rootfile: $daterootfile" >> $scriptlog 2>&1 echo "date of psfile: $datepsfile" >> $scriptlog 2>&1 #if the psfile is newer than the rootfile #no plots have to be done -> continue if [ "$datepsfile" -gt "$daterootfile" ] >> $scriptlog 2>&1 then echo "psfile is older than rootfile -> continue " >> $scriptlog 2>&1 continue fi echo "producing psfile..." >> $scriptlog 2>&1 ./showplot -b --save-as-ps=$psfile $rootfile >> $scriptlog 2>&1 echo "converting plots to png..." >> $scriptlog 2>&1 pstoimg -antialias -flip r270 -density 100 -type png -multipage -out=$tabfile $psfile >> $scriptlog 2>&1 done echo "removing old files" >> $scriptlog 2>&1 #make sure, that old plots of files, that are already removed from disk, # are deleted also in the webdirectory #this has to be done, as ps and png files are excluded from rsync, and #as rsync is done with --delete option (script /home/operator/condor/webupdate) #find all directories with plots dirs=`find $webdir/$type/* -type d | grep -v merpplogs` for dir in ${dir[@]} do #find psfiles in directory psfiles=`ls $dir/*.ps` #continue, if there are no psfiles if [ "$psfiles" == "" ] then continue fi for psfile in ${psfiles[@]} do #create name of corresponding rootfile rootfile=`echo $psfile | sed -e 's/.ps$/.root/g'` #delete ps and pngfiles if rootfile is not existing if ! ls $rootfile >> $scriptlog 2>&1 then echo "deleting old plots for $rootfile..." >> $scriptlog 2>&1 path=`dirname $psfile` rm -v $psfile >> $scriptlog 2>&1 rm -v $path/*.png >> $scriptlog 2>&1 fi done done rm -v $lockfile >> $scriptlog 2>&1 set +C date >> $scriptlog 2>&1