check_links.sh 617 B

12345678910111213141516171819202122232425
  1. #!/bin/bash
  2. linkchecker -F csv --check-extern $1
  3. OFS=$IFS
  4. IFS=$'\n'
  5. for line in $(grep -E '^[^#]' linkchecker-out.csv | tail -n +2); do
  6. link=$(echo $line | cut -d';' -f 1)
  7. file=$(echo $line | cut -d';' -f 2)
  8. msg=$(echo $line | cut -d';' -f 4)
  9. src=$(echo $file | sed -E 's/file:\/\/(.*)\/Documentation\/(\w+)\/.*/\1\/DoxyGen\/\2/')
  10. if [ -d $src ]; then
  11. origin=$(grep -Ern "href=['\"]${link}['\"]" $src/src/)
  12. for o in $origin; do
  13. ofile=$(echo $o | cut -d':' -f 1)
  14. oline=$(echo $o | cut -d':' -f 2)
  15. echo "${ofile}:${oline};${link};${msg}" >&2
  16. done
  17. fi
  18. done
  19. IFS=$OFS
  20. exit 0