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>
* update_web_docs: Use /usr/local/bin/texi2html rather than

View file

@ -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