129 lines
2.7 KiB
Bash
Executable File
129 lines
2.7 KiB
Bash
Executable File
#! /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.org
|
|
TARGETDIR=/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
|
|
|
|
EXPLANATION=''
|
|
ANNOUNCE=true
|
|
|
|
getopt -T >/dev/null
|
|
if [ $? -eq 4 ] ; then
|
|
# We have a sufficiently useful getopt(1) implementation.
|
|
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"
|
|
shift 2
|
|
;;
|
|
-F)
|
|
EXPLANATION="`cat $2`"
|
|
shift 2
|
|
;;
|
|
--)
|
|
shift 1
|
|
break
|
|
;;
|
|
-*)
|
|
echo "Unknown option: $1" >&2
|
|
exit 2
|
|
;;
|
|
*)
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
if [ "$1" ] ; then
|
|
if [ "$EXPLANATION" ] ; then
|
|
echo "Explanation may only be given once!" >&2
|
|
exit 2
|
|
fi
|
|
EXPLANATION="$1"
|
|
shift
|
|
fi
|
|
|
|
START="`pwd`"
|
|
MYDIR="`dirname $0`"
|
|
cd "$MYDIR"
|
|
MYDIR="`pwd`"
|
|
|
|
if [ "$PKGTYPE" = bzip ] ; then
|
|
PKGEXT=tar.bz2
|
|
elif [ "$PKGTYPE" = tar ] ; then
|
|
PKGEXT=tgz
|
|
elif [ "$PKGTYPE" = zip ] ; then
|
|
PKGEXT=zip
|
|
else
|
|
echo 1>&2 "unsupported package type: $PKGTYPE"
|
|
exit 2
|
|
fi
|
|
|
|
cd ..
|
|
|
|
# now in .../Doc/
|
|
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 <<EOF
|
|
To: $ADDRESSES
|
|
From: "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.$PKGEXT
|
|
EOF
|
|
exit $?
|
|
fi
|