#!/bin/sh
# PURPOSE:	Specify ARCFILE names to hide
# AUTHOR:	Reinhard Hanuschik/DFO
# VERSION:	1.0 -- created (2006-04)
#		1.0.1- use nail to send (2006-05-17)
#		1.0.2- suppress fits extension in file names (2006-06-27)
#		1.1 -- extended functionality, supports hiding and keyword changing (2006-09-04)
#		1.1.1- adapted to auto-create AR ticket (2008-04-22)
#		1.1.2- truncation of extension .hdr (2008-04-30)
#		1.1.3- $FILE_EDITOR obsolete, replaced by $DFO_EDITOR (2011-04-13)
#		1.2 -- extended functionality: supports overwrite of new version of ingested mcalib (2012-03-04)
#		1.3 -- check for hidden files in VCAL and txt files in $DFO_LOG_DIR/CALSELECTOR (2013-09-19)
#		1.3.1- option 3 disabled (2014-09-04)
#		1.3.2- option 3 removed; xterm settings hard-coded --> config file obsolete (2015-06-22)
#		2.0 -- using dfs tool hide_raw_files for option 1 (2019-07-12)
# CONFIG:	none
# COMMENTS: 	none
# ===================================================================================
# TBD: if a raw frame gets hidden, find the masters using them, also to be hidden!
TOOL_VERSION="2.0"
MAIL_DBCM="dbcm-help@eso.org"
TICKET_SYSTEM="PROP"

# ===================================================================================
# 0. Initialization
# 0.1 Check environment
# ===================================================================================

CHECK=`printenv | grep DFO`

if [ "Q$CHECK" = "Q" ]
then
        echo "*** ERROR: DFO variables not defined. Check ~/.dfosrc and restart."
        exit -1
fi

# =========================================================================
# 0.2 get options
# =========================================================================

while getopts hv OPTION
do
        case "$OPTION" in
         v ) echo "$TOOL_VERSION"
             exit 0 ;;
         h ) cat $DFO_DOC_DIR/hideFrame.h | more
             exit 0 ;;
        esac
done

# =========================================================================
# 0.3 Initialize some parameters
# =========================================================================

XTERM_GEOM="80x15+0+610"
XTERM_CALL="xterm -fg white -bg grey40 -fn fixed"

if [ Q$DFO_EDITOR = Q ]
then
	echo "***ERROR: you need to define \$DFO_EDITOR (e.g. vi, vim, emacs) in .dfosrc, then source and start again. Exit."
	exit
fi

FILE_EDITOR=`eval "echo $DFO_EDITOR $TMP_DIR/dbcm_mail"`

# =========================================================================
# 1.0 Initial dialog
# =========================================================================

SELECT=""
while [ "Q$SELECT" = "Q" ] 
do
	echo "Select an option:
 1 - Hide frame(s) (hide invalid SCIENCE or CALIB frames)
 2 - Change keyword(s) (e.g. from SCIENCE to CALIB)
"
	read SELECT
	if [ "$SELECT" -gt 2 ] || [ "$SELECT" -lt 1 ]
	then
		echo "***ERROR: Select a valid option."
	fi
done

# =========================================================================
# 2.0 Hiding
# 2.1 Filelist
# =========================================================================

rm -f $TMP_DIR/dbcm_mail*
if [ $SELECT = 1 ]
then
# call hide_raw_files
	echo "- Make sure that none of the raw files to hide is contained in VCAL! Hit return:"
	read input

	hide_raw_files
fi

# =========================================================================
# 3.0 Change request
# =========================================================================

if [ $SELECT = 2 ]
then
	cat > $TMP_DIR/dbcm_mail <<EOT
Please change header keyword(s) of the following file(s) in the archive:

ARCFILE
===================================
EOT

	echo "- Enter ARCFILE name(s):"

	$XTERM_CALL -T "$FILE_EDITOR" -geom $XTERM_GEOM -e $FILE_EDITOR 

	cat $TMP_DIR/dbcm_mail | sed "s/.fits//" | sed "s/.hdr//" > $TMP_DIR/dbcm_mail1
	mv $TMP_DIR/dbcm_mail1 $TMP_DIR/dbcm_mail

	echo "" >> $TMP_DIR/dbcm_mail
	echo "(extensions .fits or .hdr have been truncated.)" >> $TMP_DIR/dbcm_mail
	echo "" >> $TMP_DIR/dbcm_mail
	echo "Change request:" >> $TMP_DIR/dbcm_mail
	echo "==========================" >> $TMP_DIR/dbcm_mail

	echo "- Change request (e.g.: Pls. change DPR.CATG to TEST):"
	$XTERM_CALL -T "$FILE_EDITOR" -geom $XTERM_GEOM -e $FILE_EDITOR 

	echo "

$OP_NAME, ${DFO_INSTRUMENT} QC operations
" >> $TMP_DIR/dbcm_mail

	echo "- You have generated the following change request:"

	$XTERM_CALL -T "$FILE_EDITOR" -geom $XTERM_GEOM -e $FILE_EDITOR

	echo "- OK to send to $MAIL_DBCM (Y/N) ? (N) ?"
	read SEND_YN

	if [ "Q$SEND_YN" != "QY" ]
	then
		echo "- Mail has not been sent. You can send it anytime by typing:"
		echo ""
		echo "nail -s \"DBCMREQUEST: Change request for ${DFO_INSTRUMENT} file(s)\" -c $OP_ADDRESS -r $OP_ADDRESS $MAIL_DBCM < $TMP_DIR/dbcm_mail"
		echo ""
		echo "  Hit return:"
		read input
		echo "... exit."
		exit
	else
		nail -s "DBCMREQUEST: Change request for ${DFO_INSTRUMENT} file(s)" -c $OP_ADDRESS -r $OP_ADDRESS $MAIL_DBCM < $TMP_DIR/dbcm_mail
		echo "- Mail has been sent to $MAIL_DBCM and to $OP_ADDRESS. $TICKET_SYSTEM will notify you about progress. Hit return:"
		read input
		echo "... done."
	fi
	exit
fi

