htmlgen.sh (1893B)
1 #!/usr/bin/env bash 2 3 if [ "$1" == "" -o "$1" == "-h" ]; then 4 echo "usage: $(basename $0) destdir" 5 exit 1 6 fi 7 8 DESTDIR=$1 9 PACKAGE="sbotools" 10 VERSION=$(grep '^our $VERSION' SBO-Lib/lib/SBO/Lib.pm | grep -Eo '[0-9]+(\.[0-9RC]+){0,1}') 11 12 13 SBO_DIR=`pwd` 14 TMP_DIR=$(mktemp -d "/tmp/$PACKAGE.XXXXXXXXXX") 15 HTML_DIR="$TMP_DIR/html" 16 mkdir -p $DESTDIR $HTML_DIR 17 18 for i in $(ls $SBO_DIR | grep '^man'); do 19 mkdir -p $HTML_DIR/$i 20 ( cd $SBO_DIR/$i 21 for j in $(ls); do 22 man2html $j > $j.html 23 mv $j.html $HTML_DIR/$i/ 24 done 25 ) 26 ( cd $HTML_DIR/$i 27 sed -i 's/^Content-type.*$//g' * 28 sed -i 's/^<A HREF.*Return to Main.*$//g' * 29 sed -i -r "s#http://localhost/cgi-bin/man/man2html\?([0-9])\+([^\"]+)#/$PACKAGE/documentation/\2.\1.html#g" * 30 sed -i 's/j@dawnrazor.net/j_[at]_dawnrazor_[dot]_net/g' * 31 sed -i 's/xocel@iquidus.org/xocel_[at]_iquidus_[dot]_org/g' * 32 sed -i 's/andreas.guldstrand@gmail.com/andreas_[dot]_guldstrand_[at]_gmail_[dot]_com/g' * 33 sed -i 's/<A HREF="mailto:xocel_\[at\]_iquidus_\[dot\]_org">//g' * 34 sed -i 's/<A HREF="mailto:andreas_\[dot\]_guldstrand_\[at\]_gmail_\[dot\]_com">//g' * 35 sed -i 's#\[dot\]_org</A>#[dot]_org#g' * 36 sed -i 's#\[dot\]_com</A>#[dot]_com#g' * 37 sed -i 's#<A HREF="http://localhost/cgi-bin/man/man2html">man2html</A>#man2html#g' * 38 sed -i 's/^$//g' * 39 sed -i 's/^<HTML><HEAD>.*$//g' * 40 sed -i 's#^</HEAD><BODY>$##g' * 41 sed -i 's#</BODY>##g' * 42 sed -i 's#</HTML>##g' * 43 for k in $(ls); do 44 mv $k $k.tmp 45 cat $k.tmp | awk "\$0 !~ /^$/ { print > \"$k\"; }" 46 rm $k.tmp 47 mv $k .. 48 done 49 ) 50 rmdir $HTML_DIR/$i 51 done 52 53 template() { 54 SRC=$1 55 TEMPLATE="$DESTDIR/template.html" 56 NAME=${SRC//.?.html/} 57 echo "Writing $DESTDIR/$SRC ($NAME)" 58 perl -0777 -pE 's/\@TITLE\@/'$NAME'/g; s/\@MAN\@/<>/e' $TEMPLATE $SRC > $DESTDIR/$SRC 59 } 60 61 (cd $HTML_DIR 62 for src in $(ls) 63 do 64 template $src 65 done 66 ) 67 68 echo "All done." 69 exit 0;