summaryrefslogtreecommitdiffstats
path: root/Doc/tools
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2010-03-13 10:12:39 (GMT)
committerGeorg Brandl <georg@python.org>2010-03-13 10:12:39 (GMT)
commit3446583976e2eed07d70778baa54c5dca97f9d3e (patch)
treeefd55413b0f1edad6e0603a04f83eff6a3919273 /Doc/tools
parenteb6d43004134dc8b1c346b77abd1566b2d60b917 (diff)
downloadcpython-3446583976e2eed07d70778baa54c5dca97f9d3e.zip
cpython-3446583976e2eed07d70778baa54c5dca97f9d3e.tar.gz
cpython-3446583976e2eed07d70778baa54c5dca97f9d3e.tar.bz2
Add Makefile targets for automatic doc build. Add script that will be used for daily build.
Diffstat (limited to 'Doc/tools')
-rwxr-xr-xDoc/tools/dailybuild.py81
1 files changed, 81 insertions, 0 deletions
diff --git a/Doc/tools/dailybuild.py b/Doc/tools/dailybuild.py
new file mode 100755
index 0000000..6291d90
--- /dev/null
+++ b/Doc/tools/dailybuild.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# Runs the daily build of the Python docs on dinsdale.python.org.
+#
+# Usages:
+#
+# dailybuild.py
+#
+# without any arguments builds docs for all branches configured in the global
+# BRANCHES value.
+#
+# dailybuild.py [-d] <checkout> <target>
+#
+# builds one version, where <checkout> is an SVN checkout directory of the
+# Python branch to build docs for, and <target> is the directory where the
+# result should be placed. If -d is given, the docs are built even if the
+# branch is in development mode (i.e. version contains a, b or c).
+#
+# This script is not run from the checkout, so if you want to change how the
+# daily build is run, you must replace it on dinsdale. This is necessary, for
+# example, after the release of a new minor version.
+#
+# 03/2010, Georg Brandl
+
+import os
+import sys
+import getopt
+
+
+BUILDROOT = '/home/gbrandl/docbuild'
+WWWROOT = '/data/ftp.python.org/pub/docs.python.org'
+
+BRANCHES = [
+ # checkout, target, isdev
+ (BUILDROOT + '/python26', WWWROOT, False),
+ (BUILDROOT + '/python31', WWWROOT + '/py3k', False),
+ (BUILDROOT + '/python27', WWWROOT + '/dev', True),
+ (BUILDROOT + '/python32', WWWROOT + '/dev/py3k', True),
+]
+
+
+def build_one(checkout, target, isdev):
+ print 'Doc autobuild started in %s' % checkout
+ os.chdir(checkout)
+ print 'Running svn update'
+ os.system('svn update')
+ print 'Running make autobuild'
+ if os.WEXITSTATUS(os.system(
+ 'cd Doc; make autobuild-%s' % (isdev and 'dev' or 'stable'))) == 2:
+ print '*' * 80
+ return
+ print 'Copying HTML files'
+ os.system('cp -a Doc/build/html/* %s' % target)
+ print 'Copying dist files'
+ os.system('cp -a Doc/dist %s/dist' % target)
+ print 'Finished'
+ print '=' * 80
+
+def usage():
+ print 'Usage:'
+ print ' %s' % sys.argv[0]
+ print 'or'
+ print ' %s [-d] <checkout> <target>' % sys.argv[0]
+ sys.exit(1)
+
+
+if __name__ == '__main__':
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'd')
+ except getopt.error:
+ usage()
+ if opts and not args:
+ usage()
+ if args:
+ if len(args) != 2:
+ usage()
+ build_one(args[0], args[1], bool(opts))
+ else:
+ for branch in BRANCHES:
+ build_one(*branch)