update_doc is now an script in ansible-module
Dieser Commit ist enthalten in:
Ursprung
1be4320ccc
Commit
f332fa4ed8
41
update_doc
41
update_doc
|
@ -1,41 +0,0 @@
|
||||||
#!/usr/bin/python
|
|
||||||
import importlib
|
|
||||||
import pathlib
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
|
|
||||||
sys.path.append(".")
|
|
||||||
mindocstring = "DOCUMENTATION = ''''''"
|
|
||||||
moduledir = pathlib.Path("plugins/modules")
|
|
||||||
regex = re.compile("DOCUMENTATION *= *r?(?P<quote>\"{3}|'{3})(---)?.*?(?P=quote)", re.MULTILINE | re.DOTALL)
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
for modfile in moduledir.iterdir():
|
|
||||||
if modfile.name in ( "__init__.py", "__pycache__", "unit.py.example"):
|
|
||||||
continue
|
|
||||||
mod = importlib.import_module(".".join((modfile.parts[:-1])+(modfile.stem,)))
|
|
||||||
if hasattr(mod, "Module"):
|
|
||||||
module = mod.Module
|
|
||||||
elif hasattr(mod, "__module_name__"):
|
|
||||||
module = getattr(mod, mod.__module_name__)
|
|
||||||
else:
|
|
||||||
print("Error loading Module of File: {}. No Module or __module_name__ defined".format(modfile))
|
|
||||||
continue
|
|
||||||
try:
|
|
||||||
moddoc = module.doc()
|
|
||||||
except AttributeError:
|
|
||||||
print("Broken module. skipping {}".format(modfile))
|
|
||||||
continue
|
|
||||||
except Exception as e:
|
|
||||||
print("Error in documentation of module {}: {}".format(modfile, e))
|
|
||||||
continue
|
|
||||||
moddata = modfile.read_text()
|
|
||||||
match = regex.search(moddata)
|
|
||||||
if not match:
|
|
||||||
print("no Documentation set for module {}. Please add at least \"{}\" to the file".format(modfile.stem, mindocstring))
|
|
||||||
continue
|
|
||||||
newmod = "{pre}DOCUMENTATION = {quote}{doc}{quote}{post}".format(pre=moddata[:match.start()], quote=match.group("quote"), doc=moddoc, post=moddata[match.end():])
|
|
||||||
modfile.write_text(newmod)
|
|
||||||
print("updated the documentation of module {}".format(module.name))
|
|
||||||
|
|
||||||
# code: python
|
|
Laden…
In neuem Issue referenzieren