| # Copyright (c) 2022 VEXXHOST, Inc. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); you may |
| # not use this file except in compliance with the License. You may obtain |
| # a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| # License for the specific language governing permissions and limitations |
| # under the License. |
| |
| # -- Path setup -------------------------------------------------------------- |
| |
| # If extensions (or modules to document with autodoc) are in another directory, |
| # add these directories to sys.path here. If the directory is relative to the |
| # documentation root, use os.path.abspath to make it absolute, like shown here. |
| # |
| # import os |
| # import sys |
| # sys.path.insert(0, os.path.abspath('.')) |
| |
| # -- yaml2rst ---------------------------------------------------------------- |
| import os |
| import glob |
| import yaml2rst |
| from yaml4rst.reformatter import YamlRstReformatter |
| import pathlib |
| |
| for defaults_file in glob.glob("../../roles/*/defaults/main.yml"): |
| role_name = defaults_file.split("/")[-3] |
| |
| YamlRstReformatter._HEADER_END_LINES = { |
| 'yaml4rst': [ |
| '# Default variables', |
| '# :local:', |
| '# .. contents:: Sections', |
| '# .. include:: includes/all.rst', |
| '# .. include:: includes/role.rst', |
| '# .. include:: ../../../includes/global.rst', |
| '# -----------------', |
| ], |
| } |
| |
| reformatter = YamlRstReformatter( |
| preset='yaml4rst', |
| template_path=os.path.join( |
| os.path.abspath(os.path.dirname(__file__)), |
| '_templates', |
| ), |
| config={ |
| 'ansible_full_role_name': f"vexxhost.atmosphere.{role_name}", |
| 'ansible_role_name': role_name, |
| } |
| ) |
| reformatter.read_file(defaults_file) |
| reformatter.reformat() |
| reformatter.write_file( |
| output_file=defaults_file, |
| only_if_changed=True, |
| ) |
| |
| pathlib.Path(f"roles/{role_name}/defaults").mkdir(parents=True, exist_ok=True) |
| |
| rst_content = yaml2rst.convert_file( |
| defaults_file, |
| f"roles/{role_name}/defaults/main.rst", |
| strip_regex=r'\s*(:?\[{3}|\]{3})\d?$', |
| yaml_strip_regex=r'^\s{66,67}#\s\]{3}\d?$', |
| ) |
| |
| |
| # -- Project information ----------------------------------------------------- |
| |
| project = 'Atmosphere' |
| copyright = '2022, VEXXHOST, Inc.' |
| author = 'VEXXHOST, Inc.' |
| |
| |
| # -- General configuration --------------------------------------------------- |
| |
| # Add any Sphinx extension module names here, as strings. They can be |
| # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom |
| # ones. |
| extensions = [ |
| 'reno.sphinxext', |
| ] |
| |
| # Add any paths that contain templates here, relative to this directory. |
| templates_path = ['_templates'] |
| |
| # List of patterns, relative to source directory, that match files and |
| # directories to ignore when looking for source files. |
| # This pattern also affects html_static_path and html_extra_path. |
| exclude_patterns = [] |
| |
| |
| # -- Options for HTML output ------------------------------------------------- |
| |
| # The theme to use for HTML and HTML Help pages. See the documentation for |
| # a list of builtin themes. |
| # |
| html_theme = 'sphinx_rtd_theme' |
| |
| # Add any paths that contain custom static files (such as style sheets) here, |
| # relative to this directory. They are copied after the builtin static files, |
| # so a file named "default.css" will overwrite the builtin "default.css". |
| html_static_path = ['_static'] |