checklinks.sh - sites - public wiki contents of suckless.org
(HTM) git clone git://git.suckless.org/sites
(DIR) Log
(DIR) Files
(DIR) Refs
---
checklinks.sh (853B)
---
1 #!/bin/sh
2 # check internal wiki links, uses md-printlinks.c
3
4 for t in */; do
5 find "$t" -name "*.md" -type f | while read -r f; do
6 d=$(dirname "$f")
7 b=$(basename "$f")
8
9 ./md-printlinks < "$f" | \
10 awk -F '\t' '
11 /^(http|https|gopher|irc|ircs|git):\/\// { next; }
12 /^\/\/(lists|dl|git|gunther|oldgit)\./ { next; }
13 /^mailto:/ { next }
14 /^\/\/suckless\.org\/atom\.xml$/ { next }
15 {
16 print $0;
17 }
18 ' | \
19 while read -r -- l; do
20
21 # // relative
22 p="${l#//}"
23 if test x"$p" != x"$l"; then
24 bp="${p%%/*}"
25 # topmost dir doesn't exist, possibly // url to other site.
26 if ! test -d "$bp"; then
27 echo "$f $l $bp"
28 continue
29 fi
30 path="$p"
31 else
32 p="${l#/}"
33 if test x"$l" != x"$p"; then
34 # prefix is "/", use topmost dir + path.
35 path="$t/$l"
36 else
37 path="$d/$l"
38 fi
39 fi
40
41 test -e "$path" || echo "$f $l $path"
42 done
43 done
44 done