blob: ce1d48d8ede5b16f84cb401ce7354fa6c19eab67 [file] [log] [blame]
# 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']