| 1 | #! /bin/sh
|
|---|
| 2 |
|
|---|
| 3 | # Script to push docs from my development area to SourceForge, where the
|
|---|
| 4 | # update-docs.sh script unpacks them into their final destination.
|
|---|
| 5 |
|
|---|
| 6 | TARGETHOST=www.python.org
|
|---|
| 7 | TARGETDIR=/usr/home/fdrake/tmp
|
|---|
| 8 |
|
|---|
| 9 | PKGTYPE="bzip" # must be one of: bzip, tar, zip ("tar" implies gzip)
|
|---|
| 10 |
|
|---|
| 11 | TARGET="$TARGETHOST:$TARGETDIR"
|
|---|
| 12 |
|
|---|
| 13 | ADDRESSES='[email protected] [email protected] [email protected]'
|
|---|
| 14 |
|
|---|
| 15 | TOOLDIR="`dirname $0`"
|
|---|
| 16 | VERSION=`$TOOLDIR/getversioninfo`
|
|---|
| 17 |
|
|---|
| 18 | # Set $EXTRA to something non-empty if this is a non-trunk version:
|
|---|
| 19 | EXTRA=`echo "$VERSION" | sed 's/^[0-9][0-9]*\.[0-9][0-9]*//'`
|
|---|
| 20 |
|
|---|
| 21 | if echo "$EXTRA" | grep -q '[.]' ; then
|
|---|
| 22 | DOCLABEL="maintenance"
|
|---|
| 23 | DOCTYPE="maint"
|
|---|
| 24 | else
|
|---|
| 25 | DOCLABEL="development"
|
|---|
| 26 | DOCTYPE="devel"
|
|---|
| 27 | fi
|
|---|
| 28 |
|
|---|
| 29 | DOCTYPE_SPECIFIED=false
|
|---|
| 30 | EXPLANATION=''
|
|---|
| 31 | ANNOUNCE=true
|
|---|
| 32 |
|
|---|
| 33 | getopt -T >/dev/null
|
|---|
| 34 | if [ $? -eq 4 ] ; then
|
|---|
| 35 | # We have a sufficiently useful getopt(1) implementation.
|
|---|
| 36 | eval "set -- `getopt -ssh m:p:qt:F: \"$@\"`"
|
|---|
| 37 | else
|
|---|
| 38 | # This version of getopt doesn't support quoting of long options
|
|---|
| 39 | # with spaces, so let's not rely on it at all.
|
|---|
| 40 | :
|
|---|
| 41 | fi
|
|---|
| 42 |
|
|---|
| 43 | while [ "$#" -gt 0 ] ; do
|
|---|
| 44 | case "$1" in
|
|---|
| 45 | -m)
|
|---|
| 46 | EXPLANATION="$2"
|
|---|
| 47 | shift 2
|
|---|
| 48 | ;;
|
|---|
| 49 | -p)
|
|---|
| 50 | PKGTYPE="$2"
|
|---|
| 51 | shift 1
|
|---|
| 52 | ;;
|
|---|
| 53 | -q)
|
|---|
| 54 | ANNOUNCE=false
|
|---|
| 55 | shift 1
|
|---|
| 56 | ;;
|
|---|
| 57 | -t)
|
|---|
| 58 | DOCTYPE="$2"
|
|---|
| 59 | DOCTYPE_SPECIFIED=true
|
|---|
| 60 | shift 2
|
|---|
| 61 | ;;
|
|---|
| 62 | -F)
|
|---|
| 63 | EXPLANATION="`cat $2`"
|
|---|
| 64 | shift 2
|
|---|
| 65 | ;;
|
|---|
| 66 | --)
|
|---|
| 67 | shift 1
|
|---|
| 68 | break
|
|---|
| 69 | ;;
|
|---|
| 70 | -*)
|
|---|
| 71 | echo "Unknown option: $1" >&2
|
|---|
| 72 | exit 2
|
|---|
| 73 | ;;
|
|---|
| 74 | *)
|
|---|
| 75 | break
|
|---|
| 76 | ;;
|
|---|
| 77 | esac
|
|---|
| 78 | done
|
|---|
| 79 | if [ "$1" ] ; then
|
|---|
| 80 | if [ "$EXPLANATION" ] ; then
|
|---|
| 81 | echo "Explanation may only be given once!" >&2
|
|---|
| 82 | exit 2
|
|---|
| 83 | fi
|
|---|
| 84 | EXPLANATION="$1"
|
|---|
| 85 | shift
|
|---|
| 86 | fi
|
|---|
| 87 |
|
|---|
| 88 | START="`pwd`"
|
|---|
| 89 | MYDIR="`dirname $0`"
|
|---|
| 90 | cd "$MYDIR"
|
|---|
| 91 | MYDIR="`pwd`"
|
|---|
| 92 |
|
|---|
| 93 | if [ "$PKGTYPE" = bzip ] ; then
|
|---|
| 94 | PKGEXT=tar.bz2
|
|---|
| 95 | elif [ "$PKGTYPE" = tar ] ; then
|
|---|
| 96 | PKGEXT=tgz
|
|---|
| 97 | elif [ "$PKGTYPE" = zip ] ; then
|
|---|
| 98 | PKGEXT=zip
|
|---|
| 99 | else
|
|---|
| 100 | echo 1>&2 "unsupported package type: $PKGTYPE"
|
|---|
| 101 | exit 2
|
|---|
| 102 | fi
|
|---|
| 103 |
|
|---|
| 104 | # switch to .../Doc/
|
|---|
| 105 | cd ..
|
|---|
| 106 |
|
|---|
| 107 | # If $DOCTYPE was not specified explicitly, look for .doctype in
|
|---|
| 108 | # .../Doc/ and use the content of that file if present.
|
|---|
| 109 | if $DOCTYPE_SPECIFIED ; then
|
|---|
| 110 | :
|
|---|
| 111 | elif [ -f .doctype ] ; then
|
|---|
| 112 | DOCTYPE="`cat .doctype`"
|
|---|
| 113 | fi
|
|---|
| 114 |
|
|---|
| 115 | make --no-print-directory ${PKGTYPE}html || exit $?
|
|---|
| 116 | PACKAGE="html-$VERSION.$PKGEXT"
|
|---|
| 117 | scp "$PACKAGE" tools/update-docs.sh $TARGET/ || exit $?
|
|---|
| 118 | ssh "$TARGETHOST" tmp/update-docs.sh $DOCTYPE $PACKAGE '&&' rm tmp/update-docs.sh || exit $?
|
|---|
| 119 |
|
|---|
| 120 | if $ANNOUNCE ; then
|
|---|
| 121 | sendmail $ADDRESSES <<EOF
|
|---|
| 122 | To: $ADDRESSES
|
|---|
| 123 | From: "Fred L. Drake" <[email protected]>
|
|---|
| 124 | Subject: [$DOCLABEL doc updates]
|
|---|
| 125 | X-No-Archive: yes
|
|---|
| 126 |
|
|---|
| 127 | The $DOCLABEL version of the documentation has been updated:
|
|---|
| 128 |
|
|---|
| 129 | http://$TARGETHOST/dev/doc/$DOCTYPE/
|
|---|
| 130 |
|
|---|
| 131 | $EXPLANATION
|
|---|
| 132 |
|
|---|
| 133 | A downloadable package containing the HTML is also available:
|
|---|
| 134 |
|
|---|
| 135 | http://$TARGETHOST/dev/doc/python-docs-$DOCTYPE.$PKGEXT
|
|---|
| 136 | EOF
|
|---|
| 137 | exit $?
|
|---|
| 138 | fi
|
|---|