mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 11:49:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			138 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
	
		
			2.9 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
 | 
						|
 | 
						|
DOCTYPE_SPECIFIED=false
 | 
						|
EXPLANATION=''
 | 
						|
ANNOUNCE=true
 | 
						|
 | 
						|
getopt -T >/dev/null
 | 
						|
if [ $? -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
 | 
						|
          ;;
 | 
						|
  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
 | 
						|
 | 
						|
# 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 <<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
 |