#!/bin/sh

#
#  acis_set_ardlib
#  Version: 1.0 (16 August 2000) 
#  JCM 2000 Aug 16
#
# This script updates the ardlib.par file so that it finds
# the bad pixel lists that were used in processing your observation.
#
#
# =======================
# FUNCTIONS
# =======================
# HeaderVal
#
HeaderVal() {
 #
 #
 echo `cut -c6- $2 | grep "^$1 " | cut -c22-52`
}

HeaderValBig() {
 #
 #
 echo `cut -c6- $2 | grep "^$1 " | cut -c22- | cut -d" " -f1`
}


acis_find_bpix()
{
 echo "Searching for bad pixel file in current directory:"
 rm -f $TMPDIR/.acheck.bpix
 ls *$1*bpix1.fits > $TMPDIR/.acheck.bpix
 NFILES=`(cd $TMPDIR; wc -l .acheck.bpix) | cut -d. -f1`
 if [ $NFILES -eq 0 ]; then
  echo "Searching in ../secondary directory"
  rm -f $TMPDIR/.acheck.bpix
  (cd ../secondary; ls *$1*bpix1.fits)> $TMPDIR/.acheck.bpix
  NFILES=`(cd $TMPDIR; wc -l .acheck.bpix) | cut -d. -f1`
  pwd=`(cd ../secondary;pwd)`
 else
  pwd=`pwd`
 fi
 BPIX=none
 if [ $NFILES -gt 1 ]; then
  echo "More than one BPIX1 file"
  cat $TMPDIR/.acheck.bpix
 elif [ $NFILES -eq 0 ]; then
  echo "No bad pixel file found" 
 else
  BPIX=$pwd/`cat $TMPDIR/.acheck.bpix`
  echo Found bad pixel file $BPIX
 fi
}




check_writeable()
{
dummy=`(echo WTEST > .acheck.tst) 2>/dev/null`
if [ -f .acheck.tst ]; then
 rm -f .acheck.tst
else
 echo "No write permission to current directory: using /tmp"
 TMPDIR=/tmp
fi
}

int()
{
 echo `echo $1 | cut -d. -f1`
}
#
#
# =======================
# Main script
# =======================
# 
# Make a list of event2 files matching the first argument
#
ARG1=$1
TMPDIR=.
check_writeable
rm -f $TMPDIR/.acheck.bpix
acis_find_bpix $ARG1
rm -f $TMPDIR/.acheck.bpix
rm -f $TMPDIR/.acheck.plist
plist ardlib > $TMPDIR/.acheck.plist 2>&1
errval=`grep "can't open" $TMPDIR/.acheck.plist` 
if [ "$errval" = "" ]; then
 ardpar=`head -2 $TMPDIR/.acheck.plist | tail -1 | cut -d" " -f3`
 pardir=`dirname $ardpar`
 echo "Taking parameter file from directory $pardir"
else
 echo "The CIAO parameter files don't seem to be in your path."
 echo "PDIRS  = $PDIRS"
 echo "PFILES = $PFILES"
 echo "UPARM  = $UPARM"
 exit 1
fi
dlist=`dmlist $BPIX blocks | grep BADPIX | cut -c19`
echo "CCDs found in bad pixel file:"
for f in `echo $dlist`
do
 echo "CCD $f"
 pset ardlib AXAF_ACIS${f}_BADPIX_FILE="$BPIX[BADPIX${f}]"  2>$TMPDIR/.acheck.err
 if [ -f $TMPDIR/.acheck.err ]; then
  NLINES=`wc -l $TMPDIR/.acheck.err | awk '{print $1}'`
  rm -f $TMPDIR/.acheck.err
  if [ $NLINES -gt 0 ]; then
   echo "Uh-oh: no write permission to parameter directory?"
   exit 1;
  fi
 fi
done
rm -f $TMPDIR/.acheck.plist.
plist ardlib > $TMPDIR/.acheck.plist 2>&1
echo " "
echo "Updated parameter values:"
grep BADPIX_FILE $TMPDIR/.acheck.plist | cut -c1-80
ardpar=`head -2 $TMPDIR/.acheck.plist | tail -1 | cut -d" " -f3`
pardir=`dirname $ardpar`
echo " "
echo "New ardlib.par parameter file is in directory $pardir"
rm -f $TMPDIR/.acheck.plist.
rm -f $TMPDIR/.acheck.bpix



