#!/usr/bin/python import re import pathlib import importlib import sys sys.path.append("plugins/module_utils") sys.path.append("plugins/modules") mindocstring = "DOCUMENTATION = ''''''" moduledir = pathlib.Path("plugins/modules") regex = re.compile("DOCUMENTATION *= *r?(?P\"{3}|'{3})(---)?.*?(?P=quote)", re.MULTILINE | re.DOTALL) if __name__ == "__main__": for modfile in moduledir.iterdir(): if modfile.name in ( "__init__.py", "__pycache__"): continue mod = importlib.import_module(modfile.stem) if hasattr(mod, "Module"): module = mod.Module elif hasattr(mod, "__module_name__"): module = getattr(mod, mod.__module_name__) moddoc = module.doc() 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) # code: python