@@ -9,45 +9,72 @@ PROGDIR=$(dirname $PROGNAME)
99# link to include the target's full path relative to the
1010# document root.
1111
12- files=$( grep -rl " ](/" docs/* )
12+ dir=${1:- docs/ }
13+
14+ files=$( grep -rlE " \]\(/[^/()]+\)" $dir | grep -E " .md$" )
15+ # files=$(grep -rl "](/" docs/*)
1316prefix=" /"
1417IFS=$' \n '
15- for f in $files ; do
16- sed -n -r -e " s@.*\]\(${prefix} ([^)]+)\).*@\1@gip" $f | while read URL ; do
17- if [ -f site/$URL ] || [ -d site/$URL ] ; then
18- echo " found: $URL "
18+ declare -ix fixed_count=0
19+
20+ fixfile () {
21+ f=" $1 "
22+ declare -i fixed_count=0
23+ while read URL ; do
24+ if [ -z " $URL " ] ; then
25+ echo " no issues"
26+ break ;
27+ fi
28+ search=" temp/build-20/site/$URL "
29+ # echo "Search: '$search'"
30+ if [ -f " $search " ] || [ -d " $search " ] ; then
31+ # echo " found: $URL"
1932 continue
2033 fi
2134
2235 if [ -z " ${URL%%#* } " ] ; then
23- newurl=$( $PROGDIR /slugify.py " ${URL} " )
36+ newurl=$( $PROGDIR /../ slugify.py " ${URL} " )
2437 else
25- newurl=$( $PROGDIR /slugify.py " ${URL%%#* } " )
38+ newurl=$( $PROGDIR /../ slugify.py " ${URL%%#* } " )
2639 fi
2740 [[ " $newurl " =~ Asterisk-[0-9][0-9] ]] && continue
2841
42+ echo " not found: $URL "
2943 if [ " $URL " == " Home" ] ; then
3044 newpage=" /"
3145 else
32- newpage=$( cd site ; find -iname " ${newurl} " | tr -d ' \n' )
33- newpage=${newpage/ .\/ / }
46+ newpage=$( cd temp/build-20/ site ; find -iname " ${newurl} " | tr -d ' \n' )
47+ newpage=" ${newpage/ .\/ / } "
3448 if [ -z " $newpage " ] ; then
35- newpage=$( cd site ; find -iname " ${newurl} .html" | tr -d ' \n' )
36- newpage=${newpage/ .\/ / }
49+ newpage=$( cd temp/build-20/ site ; find -iname " ${newurl} .html" | tr -d ' \n' )
50+ newpage=" ${newpage/ .\/ / } "
3751 fi
3852 fi
3953 if [ -n " $newpage " ] ; then
40- fixed=$( sed -n -r -e " s@\(${prefix}${URL// +/ \\ +} \)@\(/${newpage} \)@gip" $f )
54+ # echo $newpage
55+ newsearch=${URL// +/ \\ +}
56+ newsearch=${newsearch// \? / \\ ?}
57+
58+ fixed=$( sed -n -r -e " s@\]\(/${newsearch} \)@](/${newpage} )@gip" $f )
4159 if [ -z " $fixed " ] ; then
42- echo -e " $f Unable to fix: ${prefix}${URL} -> ${newurl } "
60+ echo -e " Unable to fix: ${newsearch} -> ${newpage } "
4361 else
44- # echo "(${prefix}${URL//+/\\+}) -> (/${newpage})"
45- sed -i -r -e " s@\(${prefix}${URL// +/ \\ +} \)@\(/${newpage} \)@gi" $f
62+ fixed_count=$(( fixed_count + 1 ))
63+ echo " fixed: /${newpage} "
64+ sed -i -r -e " s@\]\(/${newsearch} \)@](/${newpage} )@gi" $f
4665 fi
4766 else
4867 if [[ ! " ${newurl} " =~ .* REST.* ]] ; then
49- echo " $f : Page not found: ${prefix}${URL} -> ${newurl} "
68+ echo " Page not found: ${newurl} "
5069 fi
5170 fi
71+ done < <( sed -n -r -e " s/.*\]\(\/([^/)]+)\).*/\1/gp" $f )
72+ return $fixed_count
73+ }
74+
75+ for f in $files ; do
76+ echo $f
77+ while true ; do
78+ fixfile $f && break ;
5279 done
5380done
0 commit comments