#! /bin/sh
# make backup of FreeSwan repository
# -l	local build only, do not transmit

#scphost=freeswan@xs1.xs4all.nl
scphost=henry@adams.freeswan.org
scpdir=backup
pfile=~freeswan/etc/relpass
ppfile=~freeswan/etc/bpp

PATH=/bin:/usr/bin
export PATH
umask 077

tmpdir=~freeswan/tmp
tarname=freeswan.tar

. ~freeswan/setup

cd $tmpdir
rm -f $tarname $tarname.gz
touch $tarname

cd ~freeswan
tar -cf $tmpdir/$tarname `ls -a |
	egrep -v '^(\.|\.\.|archive|\.nobak|\.ssh|\.ssh2|tmp)$'`

cd $tmpdir
gzip -9 $tarname
ls -l $tarname.gz

if test " $1" = " -l"
then
	exit 0
fi

echo updating >notice

date
expect -nN -c "
	set scphost $scphost
	set scpdir $scpdir
	set pfile $pfile
	set ppfile $ppfile
	set tarname $tarname
	"'
	# canned procedure for scp copying
	proc scp {from to} {
		global p scphost scpdir
		spawn scp2 -p -q $from $scphost:$scpdir/$to
		set timeout -1
		expect {
		"word:" {
			set fname $pfile
			# fall out
		}
		{":} {
			set fname $ppfile
			# fall out
		}
		eof {
			puts "eofed!"
			return
		}}
		sleep 3
		set f [open $fname r]
		set p [read $f]
		close $f
		send "$p\r"
		expect "\n"
		expect eof
		wait
	}

	scp notice $tarname.gz
	scp $tarname.gz $tarname.gz
	# done'
date

rm -f $tarname.gz
