From cf60e1d3be2db6ad6cb9a76c6fc58b614c327fd7 Mon Sep 17 00:00:00 2001 From: Timo Koch <timo.koch@iws.uni-stuttgart.de> Date: Tue, 17 Mar 2020 00:03:19 +0100 Subject: [PATCH] [examples] Add Python script generating the example docs --- examples/generate_example_docs.py | 38 +++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100755 examples/generate_example_docs.py diff --git a/examples/generate_example_docs.py b/examples/generate_example_docs.py new file mode 100755 index 0000000000..61e2bd414c --- /dev/null +++ b/examples/generate_example_docs.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python3 +import os +import argparse +import subprocess + +parser = argparse.ArgumentParser() +parser.add_argument("-d", "--directory", help="The folder to look for examples", default=".") +parser.add_argument("-m", "--markdowngenerator", help="The markdown generator script taking a list of files", default="../bin/doc/cpp_to_md.sh") +args = vars(parser.parse_args()) + +def convertToMarkdownAndMerge(dir, includeList): + script = os.path.join(os.path.abspath(args["markdowngenerator"])) + with open(os.path.join(dir, "README.md"), "w") as readme: + for include in includeList: + if os.path.splitext(include)[1] == ".md": + with open(include, "r") as markdown: + readme.write(markdown.read()) + else: + readme.write("\n\n## The file `{}`\n\n".format(os.path.split(include)[1])) + markdown = subprocess.check_output(["bash", script, include], encoding="utf-8") + readme.write(markdown + "\n") + +def generateReadme(dir): + includeList = None + try: + configname = os.path.join(dir, ".doc_config") + with open(configname, 'r') as config: + includeList = [os.path.join(dir, include) for include in config.read().splitlines()] + except FileNotFoundError: + print("Error: The example directory {} does not contain a .doc_config file! Could not generate README.md!".format(dir)) + raise + if includeList is not None: + convertToMarkdownAndMerge(dir, includeList) + +for path in os.listdir(args["directory"]): + abspath = os.path.join(os.path.abspath(args["directory"]), path) + if os.path.isdir(abspath): + generateReadme(abspath) -- GitLab