update_web_docs: Handle -r and -d options to generate docs for a release or branch in a subdirectory.

* 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
This commit is contained in:
Joseph Myers 2001-03-17 23:05:06 +00:00 committed by Joseph Myers
parent d148b6aa87
commit 832013cdfa
2 changed files with 98 additions and 19 deletions

View 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> 2001-03-15 Joseph S. Myers <jsm28@cam.ac.uk>
* update_web_docs: Use /usr/local/bin/texi2html rather than * update_web_docs: Use /usr/local/bin/texi2html rather than

View file

@ -7,6 +7,72 @@ export CVSROOT
PATH=/usr/local/bin:$PATH PATH=/usr/local/bin:$PATH
WWWBASE=/www/gcc/htdocs 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.$$ WORKDIR=/tmp/gcc-doc-update.$$
/bin/rm -rf $WORKDIR /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. # 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 # If we ever have texi files with the same name we'll have to do this
# differently. # differently.
cvs -Q co `cat FILES` cvs -Q co -r$RELEASE `cat FILES`
mv `find . -name \*.texi -print` . mv `find . -name \*.texi -print` .
# Now convert the relavent files from texi to html # 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 /usr/local/bin/texi2html -glossary -menu -split_chapter ${file}.texi
done done
@ -34,33 +100,33 @@ for file in *.html; do
cat $file | gzip --best > $file.gz cat $file | gzip --best > $file.gz
done 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 # On the 15th of the month, wipe all the old files from the
# web server. # web server.
today=`date +%d` today=`date +%d`
if test $today = 15; then 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 fi
# And copy the resulting html files to the web server # And copy the resulting html files to the web server
for file in *.html; do for file in *.html; do
cat $WWWBASE/onlinedocs/$file | cat $DOCSDIR/$file |
sed -e '/^This document was generated on/d' \ sed -e '/^<!-- Created on/d' \
-e '/^<!-- Created by texi/d' > file1 -e '/^by <I>GCC Administrator<\/I> on/d' > file1
cat $file | cat $file |
sed -e '/^This document was generated on/d' \ sed -e '/^<!-- Created on/d' \
-e '/^<!-- Created by texi/d' > file2 -e '/^by <I>GCC Administrator<\/I> on/d' > file2
if cmp -s file1 file2; then if cmp -s file1 file2; then
: :
else else
cp $file ${file}.gz $WWWBASE/onlinedocs cp $file ${file}.gz $DOCSDIR
fi fi
done 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_news.html
rm -f g77_bugs.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 ${news_file}.gz g77_news.html.gz
ln ${bugs_file}.gz g77_bugs.html.gz ln ${bugs_file}.gz g77_bugs.html.gz
if [ "$DO_THANKS_HTML" = y ]; then
cd $WWWBASE cd $WWWBASE
rm -f thanks.html rm -f thanks.html
rm -f thanks.html.gz rm -f thanks.html.gz
ln onlinedocs/$contrib_file thanks.html ln onlinedocs/$contrib_file thanks.html
ln onlinedocs/${contrib_file}.gz thanks.html.gz ln onlinedocs/${contrib_file}.gz thanks.html.gz
fi
rm -rf $WORKDIR rm -rf $WORKDIR