Skip to content
Snippets Groups Projects
Commit 39745412 authored by Andrea Bignamini's avatar Andrea Bignamini
Browse files

Merge branch 'release/v1.0.1'

- Add make tar
- Add checkfits script template
parents 566b0b0f 27a4e050
No related branches found
No related tags found
No related merge requests found
#!/bin/bash
#: Title : checkfits.sh
#: Date : 2014/10/28
#: Author : "Marco De Marco" <demarco@oats.inaf.it>
#: Version : 1.0
#: Description : Fits verification and proccessing script
#Tools paths
VERIFY_TOOL="/usr/local/bin/fitsverify"
LISTHEAD_TOOL="/usr/local/bin/listhead"
MODHEAD_TOOL="/usr/local/bin/modhead"
if [ "$1" == "CHECK" ]; then
#: Section : CHECK
#: Parameter : none
#: Response : CHECK OK
#: : CHECK FATAL
#: Description : Check availability of script tools
#Check fitsverify tools
CHECK_STRING="conform to the FITS format"
res=$($VERIFY_TOOL 2>&1)
check=$(echo $res | grep "$CHECK_STRING" | wc | awk '{print $1}')
if [ "$check" -lt "1" ]; then
echo "CHECK FATAL"
exit 0
fi
#Check listhead tools
CHECK_STRING="Usage: listhead filename"
res=$($LISTHEAD_TOOL 2>&1)
check=$(echo $res | grep "$CHECK_STRING" | wc | awk '{print $1}')
if [ "$check" -lt "1" ]; then
echo "CHECK FATAL"
exit 0
fi
#Check modhead tools
CHECK_STRING="Usage: modhead filename"
res=$($MODHEAD_TOOL 2>&1)
check=$(echo $res | grep "$CHECK_STRING" | wc | awk '{print $1}')
if [ "$check" -lt "1" ]; then
echo "CHECK FATAL"
exit 0
fi
echo "CHECK OK"
exit 0
elif [ "$1" == "VALID" ]; then
#: Section : VALID
#: Parameter : file path
#: Response : VALID OK
#: : VALID IGNORE
#: Description : Check file name compliance
file=$2
file_name=${file##*/}
#Check regex for tec files -> ignore
if [[ "${file_name,,}" =~ ^.*lbc.?tec.*\.(fits|fit|fts).*$ ]]; then
echo "VALID IGNORE: discard tec file"
exit 0
fi
#Check regex for rsync temporary file -> ignore
if [[ ! "${file_name,,}" =~ ^[^\.].*\.(fits|fit|fts).*$ ]]; then
echo "VALID IGNORE: invalid regular expression"
exit 0
fi
echo "VALID OK"
exit 0
elif [ "$1" == "VERIFY" ]; then
#: Section : VERIFY
#: Parameter : file path
#: Response : VERIFY OK
#: : VERIFY WAIT
#: : VERIFY FATAL
#: Description : Check file compliance to fits format
file=$2
FATAL_ERROR="Fatal"
EOF_ERROR="End-of-file"
#Change file and permission before processing
/usr/bin/sudo -n /bin/chmod go+r $file
#if fits verify tools exists -> fatal
if [ ! -x $VERIFY_TOOL ]; then
echo "VERIFY FATAL : verify tools not exists"
exit 0
fi
#if fits file not exists -> fatal
if [ ! -f $file ]; then
echo "VERIFY FATAL : file not exists"
exit 0
fi
#Check with fits verify
res=$($VERIFY_TOOL $file 2>&1)
#if fitsverify return fatal error -> wait
fatal=$(echo $res | grep "$FATAL_ERROR" | wc | awk '{print $1}')
if [ "$fatal" -ge "1" ]; then
echo "VERIFY FATAL"
exit 0
fi
#if fitsverify return end of file -> wait
eof=$(echo $res | grep "$EOF_ERROR" | wc | awk '{print $1}')
if [ "$eof" -ge "1" ]; then
echo "VERIFY WAIT"
exit 0
fi
#else -> ok
echo "VERIFY OK"
exit 0
elif [ "$1" == "PREPROCESS" ]; then
#: Section : PREPROCESS
#: Parameter : file path
#: : ingestion result [OK, WAIT, FATAL]
#: Response : PREPROCESS OK
#: : PREPROCESS FATAL
#: Description : Apply preprocessing before ingestion
file=$2
file_name=${file##*/}
verified=$3
#Check verified parameter value
if [ "$verified" != "OK" -a "$verified" != "WAIT" -a "$verified" != "FATAL" ]; then
echo "PREPROCESS FATAL"
exit 0
fi
#Pre processing for verified OK files
if [ "$verified" == "OK" ]; then
#Change file ownership
/usr/bin/sudo -n /bin/chown controls:controls $file
#Change file and permission before processing
/usr/bin/sudo -n /bin/chmod u+rw $file
#Check regular expression for luci files
if [[ "${file_name,,}" =~ ^.*luci.*\.(fits|fit|fts).*$ ]]; then
#if listhead tools exists -> fatal
if [ ! -x $LISTHEAD_TOOL ]; then
echo "PREPROCESS FATAL : listhead tools not exists"
exit 0
fi
#if modhead tools exists -> fatal
if [ ! -x $MODHEAD_TOOL ]; then
echo "PREPROCESS FATAL : listhead tools not exists"
exit 0
fi
#if fits file not exists -> fatal
if [ ! -f $file ]; then
echo "PREPROCESS FATAL : file not exists"
exit 0
fi
#Change GRATWLEN key from 'not used' to 0.0
gratwlen=`$LISTHEAD_TOOL $file 2>&1 | grep -i GRATWLEN`
if [[ $gratwlen =~ "'not used'/" ]]; then
$MODHEAD_TOOL $file GRATWLEN 0.0 &>/dev/null
fi
#Change GRATORDE key from 'not used' to 0.0
gratorde=`$LISTHEAD_TOOL $file 2>&1 | grep -i GRATORDE`
if [[ $gratorde =~ "'not used'/" ]]; then
$MODHEAD_TOOL $file GRATORDE 0.0 &>/dev/null
fi
fi #luci files
#Check regular expression for irt files
if [[ "${file_name,,}" =~ ^.*irt.*\.(fits|fit|fts).*$ ]]; then
#if listhead tools exists -> fatal
if [ ! -x $LISTHEAD_TOOL ]; then
echo "PREPROCESS FATAL : listhead tools not exists"
exit 0
fi
#if modhead tools exists -> fatal
if [ ! -x $MODHEAD_TOOL ]; then
echo "PREPROCESS FATAL : listhead tools not exists"
exit 0
fi
#if fits file not exists -> fatal
if [ ! -f $file ]; then
echo "PREPROCESS FATAL : file not exists"
exit 0
fi
#Search for DATE_OBS keyword
res=`$LISTHEAD_TOOL $file 2>&1 | grep DATE_OBS | wc | awk '{print $1}'`
if [ $res -eq 0 ]; then
date=`$LISTHEAD_TOOL $file 2>&1 | grep DATE-OBS`
time=`$LISTHEAD_TOOL $file 2>&1 | grep TIME-OBS`
if [ ! -z "$date" -a ! -z "$time" ]; then
date_obs=${date:11:10}T${time:11:12}
$MODHEAD_TOOL $file DATE_OBS "'$date_obs'" &>/dev/null
fi
fi
fi #irt files
fi #verified ok files
echo "PREPROCESS OK"
exit 0
elif [ "$1" == "POSTPROCESS" ]; then
#: Section : POSTPROCESS
#: Parameter : file path
#: : ingestion result [OK, WAIT, FATAL]
#: Response : POSTPROCESS OK
#: : POSTPROCESS FATAL
#: Description : Apply postprocessing after ingestion
file=$2
file_name=${file##*/}
verified=$3
#Check verified parameter value
if [ "$verified" != "OK" -a "$verified" != "WAIT" -a "$verified" != "FATAL" ]; then
echo "POSTPROCESS FATAL"
exit 0
fi
#Post process verified WAIT files
if [ "$verified" == "WAIT" ]; then
echo "Warning file: $file_name" | mutt -s "Pre process log" -- demarco@oats.inaf.it
fi
#Post process verified FATAL files
if [ "$verified" == "FATAL" ]; then
echo "Fatal file: $file_name" | mutt -s "Pre process log" -- demarco@oats.inaf.it
fi
echo "POSTPROCESS OK"
exit 0
else
#: Section : DEFAULT
#: Parameter : none
#: Response : UNKNOWN
echo "UNKNOWN"
exit 0
fi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment