diff --git a/docs/source/conf.py b/docs/source/conf.py index cb143e2..bcdf9f5 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -62,44 +62,49 @@ # epub_show_urls = 'footnote' -# script_dir = os.path.dirname(os.path.realpath(__file__)) -# agent_docs_root = os.path.join(script_dir, "external-docs") -# -# # Custom event handlers for Volttron # -# def setup(app): -# """ -# Registers callback method on sphinx events. callback method used to -# dynamically generate api-docs rst files which are then converted to html -# by readthedocs -# :param app: -# """ -# # app.connect('builder-inited', generate_apidoc) -# app.connect('builder-inited', generate_agent_docs) -# -# # app.connect('build-finished', clean_api_rst) -# app.connect('build-finished', clean_agent_docs_rst) -# -# -# def generate_agent_docs(app): -# agent_name = 'volttron-bacnet-proxy' -# agent_repo = f'https://github.com/eclipse-volttron/{agent_name}' -# docs_source_dir = 'docs/source' -# agent_version = 'releases/0.2.0-rc' -# agent_clone_dir = os.path.join(agent_docs_root, agent_name) -# -# subprocess.check_call(["git", "clone", "--no-checkout", agent_repo], cwd=agent_docs_root) -# subprocess.check_call(["git", "sparse-checkout", "set", docs_source_dir], cwd=agent_clone_dir) -# subprocess.check_call(["git", "checkout", agent_version], cwd=agent_clone_dir) -# -# def clean_agent_docs_rst(app, exception): -# """ -# Deletes folder containing all auto generated .rst files at the end of -# sphinx build immaterial of the exit state of sphinx build. -# :param app: -# :param exception: -# """ -# global agent_docs_root -# import shutil -# if os.path.exists(agent_docs_root): -# print("Cleanup: Removing agent docs clone directory {}".format(agent_docs_root)) -# shutil.rmtree(agent_docs_root) \ No newline at end of file +script_dir = os.path.dirname(os.path.realpath(__file__)) +external_docs_root = os.path.join(script_dir, "external-docs") + +# Custom event handlers for Volttron # +def setup(app): + """ + Registers callback method on sphinx events. callback method used to + dynamically generate api-docs rst files which are then converted to html + by readthedocs + :param app: + """ + # app.connect('builder-inited', generate_apidoc) + app.connect('builder-inited', generate_agent_docs) + + # app.connect('build-finished', clean_api_rst) + app.connect('build-finished', clean_agent_docs_rst) + + +def generate_agent_docs(app): + os.makedirs(external_docs_root) + project_name = agent_name= 'volttron-bacnet-proxy' + agent_repo = f'https://github.com/eclipse-volttron/{agent_name}' + docs_source_dir = 'docs/source' + agent_version = 'develop' + agent_clone_dir = os.path.join(external_docs_root, agent_name) + subprocess.check_call(["git", "clone", "--no-checkout", agent_repo, project_name + "_docs_root"], + cwd=external_docs_root) + # for 1st version not doing api-docs. If doing api-docs do full checkout, install requirements, run api-docs + clone_dir = os.path.join(external_docs_root, project_name + "_docs_root") + subprocess.check_call(["git", "sparse-checkout", "set", docs_source_dir], cwd=clone_dir) + subprocess.check_call(["git", "checkout", agent_version], cwd=clone_dir) + doc_index_dir = os.path.join(clone_dir, docs_source_dir) + os.symlink(doc_index_dir, os.path.join(external_docs_root, project_name)) + +def clean_agent_docs_rst(app, exception): + """ + Deletes folder containing all auto generated .rst files at the end of + sphinx build immaterial of the exit state of sphinx build. + :param app: + :param exception: + """ + global external_docs_root + import shutil + if os.path.exists(external_docs_root): + print("Cleanup: Removing agent docs clone directory {}".format(external_docs_root)) + shutil.rmtree(external_docs_root) \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst index 7b50af0..9bf4b85 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -135,4 +135,4 @@ in the volttron-lib-bacnet-driver repository. .. toctree:: :hidden: - BACnet Proxy Agent + BACnet Proxy Agent