Missing file.

This commit is contained in:
Nick Brassel 2023-05-01 17:13:17 +10:00
parent 21e231ef48
commit 37fcefb0e8
No known key found for this signature in database

38
lib/python/qmk/docs.py Normal file
View File

@ -0,0 +1,38 @@
"""Handlers for the QMK documentation generator (docusaurus).
"""
import shutil
from subprocess import DEVNULL
from milc import cli
from qmk.constants import QMK_FIRMWARE
DOCS_PATH = QMK_FIRMWARE / 'docs'
BUILDDEFS_PATH = QMK_FIRMWARE / 'builddefs' / 'docs'
BUILD_PATH = QMK_FIRMWARE / '.build'
BUILD_DOCS_PATH = BUILD_PATH / 'docs'
DOXYGEN_PATH = BUILD_DOCS_PATH / 'static' / 'doxygen'
def run_docs_command(cmd, capture_output = False if cli.config.general.verbose else True):
cli.run(['npm', 'run', '--prefix', BUILD_DOCS_PATH, cmd], capture_output=capture_output, check=True, stdin=DEVNULL)
def prepare_docs_build_area():
if BUILD_DOCS_PATH.exists():
shutil.rmtree(BUILD_DOCS_PATH)
cli.log.info('Copying "%s" folder to "%s"', BUILDDEFS_PATH, BUILD_DOCS_PATH)
# ignore .gitignore'd folders when we're testing locally
shutil.copytree(BUILDDEFS_PATH, BUILD_DOCS_PATH, ignore=shutil.ignore_patterns("node_modules", "build", ".docusaurus"))
# When not verbose we want to hide all output
args = {
'capture_output': False if cli.config.general.verbose else True,
'check': True,
'stdin': DEVNULL,
}
cli.log.info('Generating doxygen docs at %s', DOXYGEN_PATH)
cli.run(['doxygen', 'Doxyfile'], **args)
cli.log.info('Installing docusaurus dependencies')
cli.run(['npm', 'ci', '--prefix', BUILD_DOCS_PATH], **args)