of which are not only used for building the navigation, but also to actually tell py.test where docs should be generated. Also cleaned up and fixed the situation regarding relative links in the navigation menu and stylesheet/js paths. --HG-- branch : trunk
59 lines
1.8 KiB
Python
Executable File
59 lines
1.8 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
""" quick tool to get documentation + apigen docs generated
|
|
|
|
given a certain targetpath, apigen docs will be placed in 'apigen',
|
|
|
|
user can choose to only build either docs or apigen docs: in this case,
|
|
the navigation bar will be adjusted
|
|
"""
|
|
|
|
from _findpy import py
|
|
import py
|
|
pypath = py.__package__.getpath()
|
|
|
|
def run_tests(path, envvars='', args=''):
|
|
pytestpath = pypath.join('bin/py.test')
|
|
cmd = ('PYTHONPATH="%s" %s python "%s" %s "%s"' %
|
|
(pypath.dirpath(), envvars, pytestpath, args, path))
|
|
print cmd
|
|
py.process.cmdexec(cmd)
|
|
|
|
def build_apigen_docs(targetpath, testargs=''):
|
|
run_tests(pypath,
|
|
'APIGEN_TARGET="%s/apigen" APIGEN_DOCRELPATH="../"' % (
|
|
targetpath,),
|
|
'%s --apigen="%s/apigen/apigen.py"' % (testargs, pypath))
|
|
|
|
def build_docs(targetpath, testargs):
|
|
docpath = pypath.join('doc')
|
|
run_tests(docpath, '',
|
|
testargs + ' --forcegen --apigenrelpath="apigen/"')
|
|
docpath.copy(targetpath)
|
|
|
|
def build_nav(targetpath, docs=True, api=True):
|
|
pass
|
|
|
|
def build(targetpath, docs=True, api=True, testargs=''):
|
|
targetpath.ensure(dir=True)
|
|
if docs:
|
|
print 'building docs'
|
|
build_docs(targetpath, testargs)
|
|
if api:
|
|
print 'building api'
|
|
build_apigen_docs(targetpath, testargs)
|
|
|
|
if __name__ == '__main__':
|
|
import sys
|
|
if len(sys.argv) == 1:
|
|
print 'usage: %s <targetdir> [options]'
|
|
print
|
|
print ' targetdir: a path to a directory (created if it doesn\'t'
|
|
print ' exist) where the docs are put'
|
|
print ' options: options passed to py.test when running the tests'
|
|
sys.exit(1)
|
|
targetpath = py.path.local(sys.argv[1])
|
|
args = ' '.join(sys.argv[2:])
|
|
build(targetpath, True, True, args)
|
|
|