| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- #!/bin/bash
- usage() {
- echo ""
- echo "Usage: $(basename $0) <index> <src>"
- echo " <index> Index.html file to start link scanning at."
- echo " <src> Directory with doxygen source files."
- echo ""
- }
- if [ ! -f "$1" ]; then
- if [ -z "$1" ]; then
- echo "No index file provided!" >&2
- else
- echo "Index file not found: '$1'" >&2
- fi
- usage
- exit 1
- fi
- if [ ! -d "$2" ]; then
- if [ -z "$2" ]; then
- echo "No source directory provided!" >&2
- else
- echo "Source dir not found: '$2'" >&2
- fi
- usage
- exit 1
- fi
- linkchecker -F csv --timeout 3 --check-extern $1
- OFS=$IFS
- IFS=$'\n'
- for line in $(grep -E '^[^#]' linkchecker-out.csv | tail -n +2); do
- link=$(echo $line | cut -d';' -f 1)
- msg=$(echo $line | cut -d';' -f 4)
- origin=$(grep -Ern "href=['\"]${link}['\"]" $2)
- for o in $origin; do
- ofile=$(echo $o | cut -d':' -f 1)
- oline=$(echo $o | cut -d':' -f 2)
- match=$(echo $o | cut -d':' -f 3-)
- rest="${match#*$link}"
- ocolumn=$((${#match} - ${#rest} - ${#link}))
- echo "$(readlink -f -n $ofile):${oline}:${ocolumn};${link};${msg};URL '${link}' results to '${msg}'" >&2
- done
- done
- IFS=$OFS
- exit 0
|