#!/bin/bash
#
# Check rustdoc HTML links and anchors
set -e
set -o pipefail
# nailing-cargo -E --- maint/check-doc-links
${CARGO-cargo ${NAILINGCARGO_TOOLCHAIN}} \
doc --locked --all-features -pderive-adhoc
chk_dir=target/doc.link-check
rm -rf target/doc.link-check
cp -al target/doc $chk_dir
# Fix up https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=425632
# And also href="#" links that rustdoc likes to put in for some reason
find $chk_dir -name \*.html -print0 |
xargs -0r -- perl -i~ -pe '
s{\bid=("[^"]+")[^<>]*\>}{$&}g;
s{\bhref="#"}{}g;
'
linklint -out linklint.errors -error -root $chk_dir /derive_adhoc/@
cat linklint.errors
set +e
grep ERROR linklint.errors
rc=$?
set -e
case $rc in
0) echo >&2 '** found linkcheck errors **'; exit 1;;
1) ;;
*) echo >&2 "linkcheck failed $rc"; exit 1;;
esac