101 lines
2.7 KiB
Python
Executable file
101 lines
2.7 KiB
Python
Executable file
#!/usr/bin/env python
|
|
import fileinput
|
|
import glob
|
|
import os
|
|
import shutil
|
|
import sys
|
|
|
|
def check_build():
|
|
build_dirs = ['build', 'build/doctrees', 'build/html', 'build/latex',
|
|
'_static', '_templates']
|
|
for d in build_dirs:
|
|
try:
|
|
os.mkdir(d)
|
|
except OSError:
|
|
pass
|
|
|
|
def sf():
|
|
'push a copy to the sf site'
|
|
shutil.copy('../CHANGELOG', 'build/html/_static/CHANGELOG')
|
|
os.system('cd build/html; rsync -avz . jdh2358,matplotlib@web.sf.net:/home/groups/m/ma/matplotlib/htdocs/ -essh --cvs-exclude')
|
|
|
|
def sfpdf():
|
|
'push a copy to the sf site'
|
|
os.system('cd build/latex; scp Matplotlib.pdf jdh2358,matplotlib@web.sf.net:/home/groups/m/ma/matplotlib/htdocs/')
|
|
|
|
def figs():
|
|
os.system('cd users/figures/ && python make.py')
|
|
|
|
def html():
|
|
check_build()
|
|
shutil.copy('../lib/matplotlib/mpl-data/matplotlibrc', '_static/matplotlibrc')
|
|
if small_docs:
|
|
options = "-D plot_formats=\"['png']\""
|
|
else:
|
|
options = ''
|
|
if os.system('sphinx-build %s -P -b html -d build/doctrees . build/html' % options):
|
|
raise SystemExit("Building HTML failed.")
|
|
|
|
figures_dest_path = 'build/html/pyplots'
|
|
if os.path.exists(figures_dest_path):
|
|
shutil.rmtree(figures_dest_path)
|
|
shutil.copytree('pyplots', figures_dest_path)
|
|
|
|
def latex():
|
|
check_build()
|
|
#figs()
|
|
if sys.platform != 'win32':
|
|
# LaTeX format.
|
|
if os.system('sphinx-build -b latex -d build/doctrees . build/latex'):
|
|
raise SystemExit("Building LaTeX failed.")
|
|
|
|
# Produce pdf.
|
|
os.chdir('build/latex')
|
|
|
|
# Copying the makefile produced by sphinx...
|
|
if (os.system('pdflatex Matplotlib.tex') or
|
|
os.system('pdflatex Matplotlib.tex') or
|
|
os.system('makeindex -s python.ist Matplotlib.idx') or
|
|
os.system('makeindex -s python.ist modMatplotlib.idx') or
|
|
os.system('pdflatex Matplotlib.tex')):
|
|
raise SystemExit("Rendering LaTeX failed.")
|
|
|
|
os.chdir('../..')
|
|
else:
|
|
print 'latex build has not been tested on windows'
|
|
|
|
def clean():
|
|
os.system('svn-clean')
|
|
|
|
def all():
|
|
#figs()
|
|
html()
|
|
latex()
|
|
|
|
|
|
funcd = {
|
|
'figs' : figs,
|
|
'html' : html,
|
|
'latex' : latex,
|
|
'clean' : clean,
|
|
'sf' : sf,
|
|
'sfpdf' : sfpdf,
|
|
'all' : all,
|
|
}
|
|
|
|
|
|
small_docs = False
|
|
|
|
if len(sys.argv)>1:
|
|
if '--small' in sys.argv[1:]:
|
|
small_docs = True
|
|
sys.argv.remove('--small')
|
|
for arg in sys.argv[1:]:
|
|
func = funcd.get(arg)
|
|
if func is None:
|
|
raise SystemExit('Do not know how to handle %s; valid args are %s'%(
|
|
arg, funcd.keys()))
|
|
func()
|
|
else:
|
|
small_docs = False
|
|
all()
|