Files
gcc/maintainer-scripts/update_web_docs_libstdcxx_git
Gerald Pfeifer 7095465952 maintainer-scripts: Improve syncing of libstdc++ docs
rsync generally is a more commonly used tool for syncing data - among
others it retains time stamps and is able to remove orphaned files on
the receiver side.

We just need to exclude some directories and a symlink from being
removed as "orphaned", since they originate elsewhere.

maintainer-scripts:
	* update_web_docs_libstdcxx_git: Copy our "inner" documentation
	into the web area using rsync instead of cpio and remove orphaned
	files.
2025-09-01 20:58:02 +01:00

49 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# "sh update_web_docs_libstdcxx_git"
# Checks out a copy of the libstdc++-v3 "inner" documentation and puts
# it in the onlinedocs area. For an initial description of "inner"
# docs, see the thread starting with
# http://gcc.gnu.org/ml/libstdc++/2000-11/msg00475.html
#####################################################################
GITROOT=${GITROOT:-"/git/gcc.git"}
GETTHIS='libstdc++-v3/doc/html'
WWWDIR=/www/gcc/htdocs/onlinedocs/libstdc++
#WWWDIR=/tmp/fake-onlinedocs-testing
## No more changes should be needed. Ha, right, whatever.
#####################################################################
FILTER="newer or same age version exists|0 blocks"
PATH=/usr/local/bin:$PATH
export GITROOT
test -d $WWWDIR || /bin/mkdir $WWWDIR
test -d $WWWDIR || { echo something is very wrong ; exit 1; }
WORKDIR=/tmp/v3-doc-update.$$
/bin/rm -rf $WORKDIR
/bin/mkdir $WORKDIR
cd $WORKDIR
# checkout all the HTML files, get down into an interesting directory
git -C $GITROOT archive master $GETTHIS | tar xf -
cd $GETTHIS
# Copy the tree to the libstdc++ onlinedocs area and remove orphans (taking
# care to keep some directories coming from a different source).
rsync -ahv --delete-after -f '- /images/*' -f '- /libstdc*' -f '- latest-doxygen' . $WWWDIR 2>&1 | egrep -v "$FILTER"
err=${PIPESTATUS[1]}
if [ $err -gt 0 ]; then
printf "\nCopying failed with error code %d.\n" $err
fi
cd /
/bin/rm -rf $WORKDIR