update_web_docs: Handle -r and -d options to generate docs for a release or branch...
authorJoseph Myers <jsm28@cam.ac.uk>
Sat, 17 Mar 2001 23:05:06 +0000 (23:05 +0000)
committerJoseph Myers <jsm28@gcc.gnu.org>
Sat, 17 Mar 2001 23:05:06 +0000 (23:05 +0000)
* 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.

From-SVN: r40589

maintainer-scripts/ChangeLog
maintainer-scripts/update_web_docs

index 93feefab37b26bba3ca50eef8f0da1de20bcc67a..1f4cedc83e9dee8bf6954da287492c0b73451ea3 100644 (file)
@@ -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
index b5d779f7c5e49550b59388494b60c638c5157133..cfaf80f46043bbfeb146d1ec6d1e293451609395 100755 (executable)
@@ -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