diff options
-rw-r--r-- | maintainer-scripts/ChangeLog | 11 | ||||
-rwxr-xr-x | maintainer-scripts/update_web_docs | 106 |
2 files changed, 98 insertions, 19 deletions
diff --git a/maintainer-scripts/ChangeLog b/maintainer-scripts/ChangeLog index 93feefab37b..1f4cedc83e9 100644 --- a/maintainer-scripts/ChangeLog +++ b/maintainer-scripts/ChangeLog @@ -1,3 +1,14 @@ +2001-03-17 Joseph S. Myers <jsm28@cam.ac.uk> + + * update_web_docs: Handle -r and -d options to generate docs for a + release or branch in a subdirectory. Determine names of G77 news + and bugs files and contributors file after updated docs have been + installed, not before. Don't remove files from a subdirectory. + Don't generate manuals for gcov (included in the GCC manual) or + iostream (obsolete). Do generate manuals for cppinternals, gcj + and porting. Update regular expressions for detecting whether + files have really changed when regenerated. + 2001-03-15 Joseph S. Myers <jsm28@cam.ac.uk> * update_web_docs: Use /usr/local/bin/texi2html rather than diff --git a/maintainer-scripts/update_web_docs b/maintainer-scripts/update_web_docs index b5d779f7c5e..cfaf80f4604 100755 --- a/maintainer-scripts/update_web_docs +++ b/maintainer-scripts/update_web_docs @@ -7,6 +7,72 @@ export CVSROOT PATH=/usr/local/bin:$PATH WWWBASE=/www/gcc/htdocs +# Process options -rrelease and -ddirectory +RELEASE="" +SUBDIR="" + +while [ $# -gt 0 ]; do + case $1 in + -r*) + if [ -n "$RELEASE" ]; then + echo "Multiple releases specified" >&2 + exit 1 + fi + RELEASE="${1#-r}" + if [ -z "$RELEASE" ]; then + shift + RELEASE="${1#-r}" + if [ -z "$RELEASE" ]; then + echo "No release specified with -r" >&2 + exit 1 + fi + fi + ;; + -d*) + if [ -n "$SUBDIR" ]; then + echo "Multiple subdirectories specified" >&2 + exit 1 + fi + SUBDIR="${1#-d}" + if [ -z "$SUBDIR" ]; then + shift + SUBDIR="${1#-d}" + if [ -z "$SUBDIR" ]; then + echo "No subdirectory specified with -d" >&2 + exit 1 + fi + fi + ;; + *) + echo "Unknown argument \"$1\"" >&2 + exit 1 + ;; + esac + shift +done + +if [ -n "$RELEASE" ] && [ -z "$SUBDIR" ]; then + echo "Release specified without subdirectory" >&2 + exit 1 +fi + +if [ -z "$SUBDIR" ]; then + DOCSDIR=$WWWBASE/onlinedocs +else + DOCSDIR=$WWWBASE/onlinedocs/$SUBDIR +fi + +if [ ! -d $DOCSDIR ]; then + mkdir $DOCSDIR +fi + +if [ -z "$RELEASE" ]; then + RELEASE=HEAD + DO_THANKS_HTML=y +else + DO_THANKS_HTML=n +fi + WORKDIR=/tmp/gcc-doc-update.$$ /bin/rm -rf $WORKDIR @@ -21,11 +87,11 @@ find $CVSROOT/gcc -name \*.texi,v -print | fgrep -v -f/home/gccadmin/scripts/doc # Checkout all the texi files and get them into a single directory. # If we ever have texi files with the same name we'll have to do this # differently. -cvs -Q co `cat FILES` +cvs -Q co -r$RELEASE `cat FILES` mv `find . -name \*.texi -print` . # Now convert the relavent files from texi to html -for file in c-tree cpp chill gcc gcov gxxint g77 iostream objc-features; do +for file in c-tree cpp chill cppinternals gcc gcj gxxint g77 objc-features porting; do /usr/local/bin/texi2html -glossary -menu -split_chapter ${file}.texi done @@ -34,33 +100,33 @@ for file in *.html; do cat $file | gzip --best > $file.gz done -news_file=`grep "News About GNU Fortran" $WWWBASE/onlinedocs/g77_toc.html | sed -e '/HREF=.*[^.]/ s#^.*HREF="##g' | sed -e 's%#SEC.*%%g'` -bugs_file=`grep "Known Causes of Trouble with GNU Fortran" $WWWBASE/onlinedocs/g77_toc.html | sed -e '/HREF=.*[^.]/ s#^.*HREF="##g' | sed -e 's%#SEC.*%%g'` -contrib_file=`grep "Contributors to GCC" $WWWBASE/onlinedocs/gcc_toc.html | sed -e '/HREF=.*[^.]/ s#^.*HREF="##g' | sed -e 's%#SEC.*%%g'` - # On the 15th of the month, wipe all the old files from the # web server. today=`date +%d` if test $today = 15; then - find $WWWBASE/onlinedocs -type f -print | grep -v index.html | xargs rm + find $DOCSDIR -type f -maxdepth 1 -print | grep -v index.html | xargs rm fi # And copy the resulting html files to the web server for file in *.html; do - cat $WWWBASE/onlinedocs/$file | - sed -e '/^This document was generated on/d' \ - -e '/^<!-- Created by texi/d' > file1 + cat $DOCSDIR/$file | + sed -e '/^<!-- Created on/d' \ + -e '/^by <I>GCC Administrator<\/I> on/d' > file1 cat $file | - sed -e '/^This document was generated on/d' \ - -e '/^<!-- Created by texi/d' > file2 + sed -e '/^<!-- Created on/d' \ + -e '/^by <I>GCC Administrator<\/I> on/d' > file2 if cmp -s file1 file2; then : else - cp $file ${file}.gz $WWWBASE/onlinedocs + cp $file ${file}.gz $DOCSDIR fi done -cd $WWWBASE/onlinedocs +news_file=`grep "News About GNU Fortran" $DOCSDIR/g77_toc.html | sed -e '/HREF=.*[^.]/ s#^.*HREF="##g' | sed -e 's%#SEC.*%%g'` +bugs_file=`grep "Known Causes of Trouble with GNU Fortran" $DOCSDIR/g77_toc.html | sed -e '/HREF=.*[^.]/ s#^.*HREF="##g' | sed -e 's%#SEC.*%%g'` +contrib_file=`grep "Contributors to GCC" $DOCSDIR/gcc_toc.html | sed -e '/HREF=.*[^.]/ s#^.*HREF="##g' | sed -e 's%#SEC.*%%g'` + +cd $DOCSDIR rm -f g77_news.html rm -f g77_bugs.html @@ -71,10 +137,12 @@ ln $bugs_file g77_bugs.html ln ${news_file}.gz g77_news.html.gz ln ${bugs_file}.gz g77_bugs.html.gz -cd $WWWBASE -rm -f thanks.html -rm -f thanks.html.gz -ln onlinedocs/$contrib_file thanks.html -ln onlinedocs/${contrib_file}.gz thanks.html.gz +if [ "$DO_THANKS_HTML" = y ]; then + cd $WWWBASE + rm -f thanks.html + rm -f thanks.html.gz + ln onlinedocs/$contrib_file thanks.html + ln onlinedocs/${contrib_file}.gz thanks.html.gz +fi rm -rf $WORKDIR |