now generate list of playbook ojbect directives

TODO: needs links/info and conditionals added
pull/14670/head
Brian Coca 9 years ago
parent 771f1e31a9
commit fbdcb22e36

1
.gitignore vendored

@ -31,6 +31,7 @@ docs/man/man3/*
*.sublime-workspace *.sublime-workspace
# docsite stuff... # docsite stuff...
docsite/rst/modules_by_category.rst docsite/rst/modules_by_category.rst
docsite/rst/playbooks_directives.rst
docsite/rst/list_of_*.rst docsite/rst/list_of_*.rst
docsite/rst/*_module.rst docsite/rst/*_module.rst
docsite/*.html docsite/*.html

@ -1,10 +1,11 @@
#!/usr/bin/make #!/usr/bin/make
SITELIB = $(shell python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()") SITELIB = $(shell python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")
FORMATTER=../hacking/module_formatter.py FORMATTER=../hacking/module_formatter.py
DUMPER=../hacking/dump_playbook_attributes.py
all: clean docs all: clean docs
docs: clean modules staticmin docs: clean directives modules staticmin
./build-site.py ./build-site.py
-(cp *.ico htmlout/) -(cp *.ico htmlout/)
-(cp *.jpg htmlout/) -(cp *.jpg htmlout/)
@ -41,6 +42,9 @@ clean:
.PHONEY: docs clean .PHONEY: docs clean
directives: $(FORMATTER) ../hacking/templates/rst.j2
PYTHONPATH=../lib $(DUMPER) --template-dir=../hacking/templates --output-dir=rst/
modules: $(FORMATTER) ../hacking/templates/rst.j2 modules: $(FORMATTER) ../hacking/templates/rst.j2
PYTHONPATH=../lib $(FORMATTER) -t rst --template-dir=../hacking/templates --module-dir=../lib/ansible/modules -o rst/ PYTHONPATH=../lib $(FORMATTER) -t rst --template-dir=../hacking/templates --module-dir=../lib/ansible/modules -o rst/

@ -20,3 +20,4 @@ and adopt these only if they seem relevant or useful to your environment.
playbooks_tags playbooks_tags
playbooks_vault playbooks_vault
playbooks_startnstep playbooks_startnstep
playbooks_directives

@ -0,0 +1,33 @@
#!/usr/bin/env python2
import optparse
from jinja2 import Environment, FileSystemLoader
from ansible.playbook import Play
from ansible.playbook.block import Block
from ansible.playbook.role import Role
from ansible.playbook.task import Task
template_file = 'playbooks_directives.rst.j2'
oblist = {}
for aclass in Play, Block, Role, Task:
aobj = aclass()
oblist[type(aobj).__name__] = aobj
p = optparse.OptionParser(
version='%prog 1.0',
usage='usage: %prog [options]',
description='Generate module documentation from metadata',
)
p.add_option("-T", "--template-dir", action="store", dest="template_dir", default="hacking/templates", help="directory containing Jinja2 templates")
p.add_option("-o", "--output-dir", action="store", dest="output_dir", default='/tmp/', help="Output directory for rst files")
(options, args) = p.parse_args()
env = Environment(loader=FileSystemLoader(options.template_dir), trim_blocks=True,)
template = env.get_template(template_file)
outputname = options.output_dir + template_file.replace('.j2','')
tempvars = { 'oblist': oblist }
with open( outputname, 'w') as f:
f.write(template.render(tempvars))

@ -0,0 +1,19 @@
Directives Glossary
===================
Here we list the common playbook objects and the possible directives that can be used with them.
Note that not all directives affect the object itself and might just be there to be inherited by other contained objects.
.. contents::
:local:
:depth: 1
{% for name in oblist %}
{{ name }}
{{ '-' * name|length }}
{% for attribute in oblist[name].__dict__['_attributes']|sort %}
* {{ attribute }}
{% endfor %}
{% endfor %}
Loading…
Cancel
Save