yunohost/doc/generate_resource_doc.py
2023-02-07 13:43:32 +01:00

41 lines
990 B
Python

import ast
print("""---
title: App resources
template: docs
taxonomy:
category: docs
routes:
default: '/packaging_apps_resources'
---
""")
fname = "../src/utils/resources.py"
content = open(fname).read()
# NB: This magic is because we want to be able to run this script outside of a YunoHost context,
# in which we cant really 'import' the file because it will trigger a bunch of moulinette/yunohost imports...
tree = ast.parse(content)
ResourceClasses = [c for c in tree.body if isinstance(c, ast.ClassDef) and c.bases and c.bases[0].id == 'AppResource']
ResourceDocString = {}
for c in ResourceClasses:
assert c.body[1].targets[0].id == "type"
resource_id = c.body[1].value.value
docstring = ast.get_docstring(c)
ResourceDocString[resource_id] = docstring
for resource_id, doc in sorted(ResourceDocString.items()):
doc = doc.replace("\n ", "\n")
print("")
print(f"## {resource_id.replace('_', ' ').title()}")
print("")
print(doc)