#!/bin/sh

CONFDIR=$DESTDIR/etc/ax25/fbb
DATADIR=$DESTDIR/var/ax25/fbb
LIBDIR=$DESTDIR/usr/lib/fbb
FBBCONF=$DESTDIR/etc/ax25/fbb.conf

echo
echo "Sysop callsign(s) separated by a space."
echo "Ex : F6FBB F5NUF@F6FBB.FMLR.FRA.EU :"
echo "enter the list then <return> :"
read SYSOP

echo
echo "- satupdat sysops are :"
for CALL in $SYSOP ; do
	echo "  $CALL"
done
echo

#
# Create maintenance/60_satupdat script
#

SCRIPT=$LIBDIR/script/maintenance/60_satupdat

echo "- Creating script $SCRIPT ..."

cat <<EOF > $SCRIPT
#!/bin/sh

###############################################
#
# satupdat automatic satellite update for LINUX
#
# F6FBB - 2000
#
###############################################

CONFDIR=$CONFDIR
DATADIR=$DATADIR
LIBDIR=$LIBDIR
FBBCONF=$FBBCONF

#
# THIS VARIABLE MUST BE INITALIZED !
# ==================================
#
# 7PLUS administrator(s) for report mails
# Replace SYSOP by the list of callsign separated by a space
#
SAT_ADM="$SYSOP"

#
# THESE VARIABLES SHOULD BE OK
#

#
# MAIL.IN file
#
MAIL_IN=\$DATADIR/mail/mail.in

#
# Name (and path) of the satupdat program
#
SATUPDAT=\$LIBDIR/tool/satupdat

#
# Name of the input file
#
SAT_LOG=\$DATADIR/sat/amsat.txt

#
# Name of the report file
#
SAT_RES=satupdat.res

#
# Don't change anymore line
#

SATVERSION=\`\$SATUPDAT - /i\`

report()
{
	for ADM in \$SAT_ADM ; do
		echo "#"
		echo "SP \$ADM"
		echo "Satupdat report"
		echo
		echo "satupdat \$SATVERSION - F6BVP/F6FBB"
		echo
		if [ -s \${SAT_RES}_N ] ; then
			echo "NASA format files :"
			cat \${1}_N
		fi
		if [ -s \${SAT_RES}_A ] ; then
			echo
			echo "AMSAT format files :"
			cat \${1}_A
		fi
		echo "/EX"
	done
}

cd \$DATADIR/sat
rm -f \${SAT_RES}

if [ ! -f \$SAT_LOG ]
then
	echo "No log file. exiting..."
	exit 0
fi

#
# Extract KEPS from the log file
#

echo -n "NASA format files..."
\$SATUPDAT \$SAT_LOG /v /n | grep -i updated > \${SAT_RES}_N
echo " Done"
echo -n "AMSAT format files..."
\$SATUPDAT \$SAT_LOG /v    | grep -i updated > \${SAT_RES}_A
echo " Done"
rm -f \$SAT_LOG

if [ -s \${SAT_RES}_N -o -s \${SAT_RES}_A ] ; then
	report \$SAT_RES >> \$MAIL_IN
	echo "satupdat \$SATVERSION - F6BVP/F6FBB" > \$SAT_RES
fi

if [ -f \${SAT_RES}_N ] ; then
	echo >> \$SAT_RES
	echo "NASA format files :" >> \$SAT_RES
	cat \${SAT_RES}_N >> \$SAT_RES
	rm -f \${SAT_RES}_N
fi

if [ -f \${SAT_RES}_A ] ; then
	echo >> \$SAT_RES
	echo "AMSAT format files :" >> \$SAT_RES
	cat \${SAT_RES}_A >> \$SAT_RES
	rm -f \${SAT_RES}_A
fi

exit 0
EOF
echo

chmod +x $SCRIPT

echo "- Copying satupdat"
if [ -x $LIBDIR/tool/satupdat ] ; then
	echo "  ! satupdat already exists in $LIBDIR/tool directory"
	echo -n "  ! overwrite (y/n) ? "
	read rep
	if [ "$rep" = "y" -o "$rep" = "Y" ] ; then
		echo "  * satupdat saved as $LIBDIR/tool/satupdat.old"
		cp $LIBDIR/tool/satupdat $LIBDIR/tool/satupdat.old
		cp satupdat $LIBDIR/tool/satupdat
		chmod +x $LIBDIR/tool/satupdat
	fi
else
	cp satupdat $LIBDIR/tool/satupdat
	chmod +x $LIBDIR/tool/satupdat
fi
echo

BBS_SYS=$CONFDIR/bbs.sys

update_bbs_sys()
{
	TMPFILE=/tmp/tmpfile.$$
	BBS=10
	while [ $BBS -le 80 ] ; do
		grep ^$BBS $BBS_SYS > $TMPFILE 
		read NB CALL < $TMPFILE
		if [ "$CALL" = "" ] ; then
			cat $BBS_SYS | sed "s/^$BBS/$BBS AMSAT/" > $TMPFILE
			echo "  * $BBS_SYS saved as $BBS_SYS.old"
			cp $BBS_SYS $BBS_SYS.old
			cp $TMPFILE $BBS_SYS
			break
		fi
		BBS=`expr $BBS + 1`
	done
	rm -f $TMPFILE
}

echo "- Checking bbs.sys :"
if ! grep -i AMSAT $BBS_SYS ; then
	echo "  * Adding AMSAT to bbs.sys"
	update_bbs_sys
fi
echo

FWD_SYS=$CONFDIR/forward.sys

update_fwd_sys()
{
	echo "  * Adding AMSAT to forward.sys"
	cat <<EOF >> $FWD_SYS

# Added by satupdat installation
< FWD\\AMSAT
# End of modification
EOF
}

FWD_AMSAT=$CONFDIR/fwd/amsat

update_fwd_amsat()
{	
	echo "  * Creating fwd/amsat forwarding block"
	mkdir -p $CONFDIR/fwd
	cat <<EOF > $FWD_AMSAT
#
# File created by satupdat installation
#
A AMSAT
  G AMSAT
  P @
  C sat/amsat.txt
----
EOF
}

echo "- Checking forward.sys :"
if ! grep -i AMSAT $FWD_SYS ; then
	update_fwd_sys
fi
echo

echo "- Checking forward.sys :"
if [ ! -f $FWD_AMSAT ] ; then
	update_fwd_amsat
elif ! grep -i "C sat/amsat.txt" $FWD_AMSAT ; then
	if [ -f $FWD_AMSAT ] ; then
		echo "  * Renaming fwd/amsat to fwd/amsat.old"
		mv $FWD_AMSAT $FWD_AMSAT.old
	fi
	update_fwd_amsat
fi
echo

echo "- Done"
echo

exit 0
