#!/bin/sh

/bin/date

# cvs only substitutes one % format character in the log_info line,
# so we have to do both the update-mailing and the cvs update in this
# script.  commit_prep and log_accum do not correctly find each other
# when we run log_accum from this script (It looks like the magic
# filename they use in /tmp has a pid or something that get confused
# when log_accum is run from here), so we just send out a bogus little
# by-hand update note.

# $1 is of the format "WEB_PAGE_DIRNAME" with the last component being 
# the project's name

# $2 is of the format "DIRECTORYNAME FILENAME" with no final slash on DNAME.
# DNAME is the directory name inside the project's CVS repository.  e.g.
# $2 can look like "htdocs index.html,1.3 foo.html,1.5"


SHORTNAMES=`echo $2 | sed 's|,[^ ]*||g'`
REPONAME=`echo $1 | sed -e 's,/www/sourceware/htdocs/,,' -e 's,/.*$,,'`

####------------------------------------------
#   Update the web pages
####------------------------------------------

# try to avoid a race (this kludge from the cvs docs)
/bin/sleep 2
cd $1

DIRNAME=`echo $2 | sed -e 's, .*,,' -e 's,^htdocs$,.,' -e 's,htdocs,.,'`
/usr/local/bin/cvs -q update -d -P -l $DIRNAME


# DIRNAME has the last component of the directory name; $1 has the
# full prefix.  Combine them to get into the final real directory.

cd $1/$DIRNAME

####------------------------------------------
#   Send mail notification about the update 
####------------------------------------------

firstfile=`echo $2 | sed -e 's,^[^ ]* ,,' -e 's, .*,,'`
filename=`echo $firstfile | sed 's|,[^,]*$||'`
fileversion=`echo $firstfile | sed 's|^.*,||'`

QMAILHOST=sourceware.cygnus.com
export QMAILHOST
(
  echo Files modified in the $REPONAME repository.  Log entry:
  echo ""
  /usr/local/bin/cvs log -N -r$fileversion $filename | sed -e '1,/^date: /d' -e '$d'
) |
  /bin/mail -s "$SHORTNAMES" ${REPONAME}-webpages-cvs@sourceware.cygnus.com

exit 0
