138 lines · 2.9 KB · Shell
RawDownload
#! /bin/sh #  Script to push docs from my development area to SourceForge, where the#  update-docs.sh script unpacks them into their final destination. TARGETHOST=www.python.orgTARGETDIR=/usr/home/fdrake/tmp PKGTYPE="bzip"  # must be one of: bzip, tar, zip  ("tar" implies gzip) TARGET="$TARGETHOST:$TARGETDIR" ADDRESSES='python-dev@python.org doc-sig@python.org python-list@python.org' TOOLDIR="`dirname $0`"VERSION=`$TOOLDIR/getversioninfo` # Set $EXTRA to something non-empty if this is a non-trunk version:EXTRA=`echo "$VERSION" | sed 's/^[0-9][0-9]*\.[0-9][0-9]*//'` if echo "$EXTRA" | grep -q '[.]' ; then    DOCLABEL="maintenance"    DOCTYPE="maint"else    DOCLABEL="development"    DOCTYPE="devel"fi DOCTYPE_SPECIFIED=falseEXPLANATION=''ANNOUNCE=true getopt -T >/dev/nullif [ $? -eq 4 ] ; then    # We have a sufficiently useful getopt(1) implementation.    eval "set -- `getopt -ssh m:p:qt:F: \"$@\"`"else    # This version of getopt doesn't support quoting of long options    # with spaces, so let's not rely on it at all.    :fi while [ "$#" -gt 0 ] ; do  case "$1" in      -m)          EXPLANATION="$2"          shift 2          ;;      -p)          PKGTYPE="$2"          shift 1          ;;      -q)          ANNOUNCE=false          shift 1          ;;      -t)          DOCTYPE="$2"          DOCTYPE_SPECIFIED=true          shift 2          ;;      -F)          EXPLANATION="`cat $2`"          shift 2          ;;      --)          shift 1          break          ;;      -*)          echo "Unknown option: $1" >&2          exit 2          ;;      *)          break          ;;  esacdoneif [ "$1" ] ; then    if [ "$EXPLANATION" ] ; then        echo "Explanation may only be given once!" >&2        exit 2    fi    EXPLANATION="$1"    shiftfi START="`pwd`"MYDIR="`dirname $0`"cd "$MYDIR"MYDIR="`pwd`" if [ "$PKGTYPE" = bzip ] ; then    PKGEXT=tar.bz2elif [ "$PKGTYPE" = tar ] ; then    PKGEXT=tgzelif [ "$PKGTYPE" = zip ] ; then    PKGEXT=zipelse    echo 1>&2 "unsupported package type: $PKGTYPE"    exit 2fi # switch to .../Doc/cd .. # If $DOCTYPE was not specified explicitly, look for .doctype in# .../Doc/ and use the content of that file if present.if $DOCTYPE_SPECIFIED ; then    :elif [ -f .doctype ] ; then    DOCTYPE="`cat .doctype`"fi make --no-print-directory ${PKGTYPE}html || exit $?PACKAGE="html-$VERSION.$PKGEXT"scp "$PACKAGE" tools/update-docs.sh $TARGET/ || exit $?ssh "$TARGETHOST" tmp/update-docs.sh $DOCTYPE $PACKAGE '&&' rm tmp/update-docs.sh || exit $? if $ANNOUNCE ; then    sendmail $ADDRESSES <<EOFTo: $ADDRESSESFrom: "Fred L. Drake" <fdrake@acm.org>Subject: [$DOCLABEL doc updates]X-No-Archive: yes The $DOCLABEL version of the documentation has been updated:     http://$TARGETHOST/dev/doc/$DOCTYPE/ $EXPLANATION A downloadable package containing the HTML is also available:     http://$TARGETHOST/dev/doc/python-docs-$DOCTYPE.$PKGEXTEOF    exit $?fi