52 lines
1.5 KiB
Python
52 lines
1.5 KiB
Python
|
#!/usr/bin/env python
|
||
|
|
||
|
"""
|
||
|
build the 'py' documentation and api docs in a specified
|
||
|
directory, defaulting to 'html'. You need to be a directory
|
||
|
where your "py" package is.
|
||
|
|
||
|
This script generates API documentation and static
|
||
|
documentation. The API documentation is generated by using
|
||
|
the "apigen" facility of the py lib which currently only works
|
||
|
on windows.
|
||
|
"""
|
||
|
|
||
|
import sys
|
||
|
sys.path.insert(0, '.')
|
||
|
|
||
|
import py
|
||
|
import os
|
||
|
|
||
|
def sysexec(cmd):
|
||
|
print "executing", cmd
|
||
|
os.system(cmd)
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
pydir = py.path.local().join("py")
|
||
|
assert pydir.check(dir=1), "py directory not found"
|
||
|
pypath = py.path.local(py.__file__).dirpath()
|
||
|
assert pydir == pypath, "directory %s and %s differ" %(pydir, pypath)
|
||
|
|
||
|
args = sys.argv[1:]
|
||
|
if not args:
|
||
|
htmldir = py.path.local('html')
|
||
|
else:
|
||
|
htmldir = py.path.local(sys.argv.pop(0))
|
||
|
|
||
|
print "generating docs into", htmldir
|
||
|
print "pypath", pypath
|
||
|
pytest = pypath.join("bin/py.test")
|
||
|
assert pytest.check()
|
||
|
|
||
|
print
|
||
|
print "*" * 30, "apigen", "*"*30
|
||
|
apigendir = htmldir.join("apigen")
|
||
|
env = 'DOCPATH="%s" APIGENPATH="%s"' %(htmldir, apigendir)
|
||
|
if apigendir.check():
|
||
|
print apigendir, "exists, not re-generating - remove to trigger regeneration"
|
||
|
else:
|
||
|
sysexec('%(env)s %(pytest)s --apigen=%(pypath)s/apigen/apigen.py py' % locals())
|
||
|
print
|
||
|
print "*" * 30, "static generation", "*" * 30
|
||
|
sysexec('%(env)s %(pytest)s --forcegen %(pypath)s/doc' % locals())
|