#!/bin/sh
# web_serve_check
# called by ~jhs crontab with eg:
#	/home/jhs/public_html/bin/.sh/web_serve_check
# Now also works from internal hosts via proxy.

# ~/.procmailrc_system_logs looks for words Failed & Successful"

web_serve_check=`basename $0`
if test -d $HOME/tmp/$web_serve_check ; then	#{
	echo "$HOME/tmp/$web_serve_check already exist, previous run failed."
else						#}{
	mkdir -p $HOME/tmp/$web_serve_check || exit 1
fi						#}
cd $HOME/tmp/$web_serve_check || exit 1

# Ensure line is up.
echo "Next ping will fail on an internal host, though http proxy will succeed."
/sbin/ping -q -c 1 www1.berklix.org 2>&1 > /dev/null
#	2>&1 in case line is down, to swallow :
#		PING slim.berklix.org (194.246.123.68): 56 data bytes
#		--- slim.berklix.org ping statistics ---
#		1 packets transmitted, 0 packets received, 100.0% packet loss
echo "End of ping"

# None of the following block are needed when called live by jhs,
# as inherited from my csh env.
#	FTP_PASSIVE_MODE=YES
#	FTPSERVER=gate.js.berklix.net
#	ftp_proxy=ftp://gate.js.berklix.net:21
#	FTP_PASSWORD=jhs_ERASE_@berklix.net
#	FTP_LOGIN=ftp
#	all_proxy=http://gate.js.berklix.net
#	no_proxy=localhost,js.berklix.net
#	export	FTP_PASSIVE_MODE
#	export	FTPSERVER
#	export	ftp_proxy
#	export	FTP_PASSWORD
#	export	FTP_LOGIN
#	export	all_proxy
#	export	no_proxy
# But if a different Bourne shell user calls this direct,
# then the 2 uncommented lines Are needed.
http_proxy=http://gate.js.berklix.net:80
export	http_proxy

names=
names="$names www1.berklix.com"
names="$names www2.berklix.com"
names="$names www.berklix.eu"
names="$names www.berklix.net"
names="$names www.berklix.org"
# names="$names www.bsd pie.com"
names="$names www.geoffharries.com"
names="$names www.the-phoney-photon.com"
names="$names www.surfacevision.com"

# Test a combination of remote hosts & domains.
for i in $names
	do
	fetch -o $i http://$i/~jhs/index.html || echo "Failed on host $i" 
	done
# diff3	www1.berklix.com \
# 	www2.berklix.com \
# 	> /dev/null && echo "Successful" || echo "Failed on diff3"
diff	www1.berklix.com \
	www2.berklix.com \
	> /dev/null && echo "Successful" || echo "Failed on diff"

# To test syntax:
#	diff a a > /dev/null && echo yes || echo no
#		yes
#	diff a b > /dev/null && echo yes || echo no
#		no

# rm -f www[1-3].berklix.com 
rm -f $names && cd .. && rmdir $web_serve_check || echo "Failed on clean."

# I don't check content of site top pages, as content varies.

# Cron sends me a default mail on success with:
#	Subject: Cron <jhs@fire> /home/jhs/bin/.sh/$web_serve_check
