@ -35,35 +35,13 @@ BLACKLIST_MODULES = [
' async_wrapper '
' async_wrapper '
]
]
MODULEDIR = " /Users/jpm/Auto/pubgit/ansible/ansible/library "
# Get parent directory of the directory this script lives in
MODULEDIR = os . path . abspath ( os . path . join (
BOILERPLATE = '''
os . path . dirname ( os . path . realpath ( __file__ ) ) , os . pardir , ' library '
- - -
) )
module : foo
EXAMPLE_YAML = os . path . abspath ( os . path . join (
author : AUTHORNAME
os . path . dirname ( os . path . realpath ( __file__ ) ) , os . pardir , ' examples ' , ' DOCUMENTATION.yaml '
short_description : A short description , think title
) )
description :
- First paragraph explains what the module does . More paragraphs can
be added .
- Second para of description . You can use B ( bold ) , I ( italic ) , and
C ( constant - width ) . To refer to another M ( module ) use that , and
U ( url ) exists too .
version_added : " 0.x "
options :
dest :
required : true
description :
- What does this option do , and bla bla bla
- More than one paragraph allowed here as well . Formatting
with B ( bold ) , etc . work too .
remove :
required : false
choices : [ yes , no ]
default : " maybe "
aliases : [ kill , killme , delete ]
description :
- The foo to do on M ( module ) but be careful of lorem ipsum
'''
# There is a better way of doing this!
# There is a better way of doing this!
# TODO: somebody add U(text, http://foo.bar/) as described by Tim in #991
# TODO: somebody add U(text, http://foo.bar/) as described by Tim in #991
@ -177,6 +155,11 @@ def return_data(text, options, outputname, module):
else :
else :
print text
print text
def boilerplate ( ) :
if not os . path . exists ( EXAMPLE_YAML ) :
print >> sys . stderr , " Missing example boiler plate: % S " % EXAMPLE_YAML
print file ( EXAMPLE_YAML ) . read ( )
def main ( ) :
def main ( ) :
@ -231,7 +214,7 @@ def main():
dest = " do_boilerplate " ,
dest = " do_boilerplate " ,
default = False ,
default = False ,
help = " generate boilerplate DOCUMENTATION to stdout " )
help = " generate boilerplate DOCUMENTATION to stdout " )
p . add_option ( ' -V ' , action = ' version ' )
p . add_option ( ' -V ' , action = ' version ' , help = ' Show version number and exit ' )
( options , args ) = p . parse_args ( )
( options , args ) = p . parse_args ( )
@ -247,6 +230,10 @@ def main():
if not options . module_dir :
if not options . module_dir :
print " Need module_dir "
print " Need module_dir "
sys . exit ( 1 )
sys . exit ( 1 )
if not os . path . exists ( options . module_dir ) :
print >> sys . stderr , " Module directory does not exist: %s " % options . module_dir
sys . exit ( 1 )
if not options . template_dir :
if not options . template_dir :
print " Need template_dir "
print " Need template_dir "
@ -364,34 +351,5 @@ def main():
text = template . render ( docs )
text = template . render ( docs )
return_data ( text , options , outputname , ' modules ' )
return_data ( text , options , outputname , ' modules ' )
#def boilerplate():
#
# # Sneaky: insert author's name from Git config
#
# cmd = subprocess.Popen("git config --get user.name", shell=True,
# stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# out, err = cmd.communicate()
#
# if len(out.split('\n')) == 2:
# author = out.split('\n')[0]
# print author
# else:
# author = "Your Name"
#
# # I can't dump YAML in ordered fasion, so I use this boilerplate string
# # and verify it is parseable just before printing it out to the user.
#
# try:
# boilplate = yaml.load(BOILERPLATE)
# except:
# print "Something is wrong with the BOILERPLATE"
# sys.exit(1)
#
# print """
#DOCUMENTATION = '''
#%s
#'''
#"""[1:-1] % (BOILERPLATE.replace('AUTHORNAME', author) [1:-1] )
if __name__ == ' __main__ ' :
if __name__ == ' __main__ ' :
main ( )
main ( )