#!/bin/bash
#                       /usr/local/bin/link_lint
# https://crystalfaeries.net/posix/bin/link_lint
# celeste:crystalfaery LINK_LINT 2020-08-13 18:32:09+00:00
# weekly cronjob hyperlink verification of crystalfaeries.net

# Verify the links inside website:
linklint -host "https://crystalfaeries.net/" -index index.html -orphan -root "$HOME"/crystalfaeries.net/ \@	\
	     >& "$HOME"/crystalfaeries.net/linkdoc/linklint.local.txt
let ERRCODE=$?
	if [ $ERRCODE -ne 0 ]
	then
		echo "LOCAL ERROR: $ERRCODE"		>> "$HOME"/crystalfaeries.net/linkdoc/linklint.local.txt
		exit	$ERRCODE
	fi

# Verify the links out of website to the external world:
linklint -concise_url -doc "$HOME"/crystalfaeries.net/linkdoc -redirect			\
	"$(cut -f2- "$HOME"/crystalfaeries.net/links.txt | sed 's/https:/http:/')"	\
		>&  "$HOME"/crystalfaeries.net/linkdoc/linklint.external.txt
let ERRCODE=$?
	if [ $ERRCODE -ne 0 ]
	then
		echo "EXTERNAL ERROR: $ERRCODE"		>> "$HOME"/crystalfaeries.net/linkdoc/linklint.external.txt
		exit	$ERRCODE
	fi

# Verify the links of our bookmarks file (while we're at it :-)
cp	/dev/null									 "${HOME}"/.mozilla/firefox/linklint.bookmarks.err
cp	/dev/null									 "${HOME}"/.mozilla/firefox/linklint.bookmarks.txt
for link in	"$(cut -f2-	     "$HOME"/.mozilla/firefox/bookmarks.html | grep -v 'place:' | sed 's/https:/http:/')"
do
echo   "linklint -concise_url -doc   ${HOME}/.mozilla/firefox -redirect  ${link}"  >> "${HOME}"/.mozilla/firefox/linklint.bookmarks.err
	linklint -concise_url -doc "${HOME}"/.mozilla/firefox -redirect "${link}" \
1>>	"${HOME}"/.mozilla/firefox/linklint.bookmarks.txt \
2>>	"${HOME}"/.mozilla/firefox/linklint.bookmarks.err
	let ERRCODE=$?
	if [[ $ERRCODE -eq 0 ]]
	then	# no error
	:	# carry on...
	else	# an error
	echo "BOOKMARKS ERROR:	$ERRCODE"					>> /home/celeste/.mozilla/firefox/linklint.bookmarks.err
	exit			$ERRCODE	# until debugged, exit on first error
	fi
done
exit	$ERRCODE
