diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c7b7034..bd66da0 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -11,7 +11,8 @@ exclude: | .*\.o| flake.lock| dependencies.lock| - assets/case/ + assets/case/| + docs/doxygen/ ) repos: @@ -113,7 +114,8 @@ repos: name: doxygen code coverage language: system entry: tools/doxy-coverage.py - args: [docs/doxygen/xml, --threshold=40, --summary-only] + args: + [docs/doxygen/xml, --threshold=40, --summary-only, --generate-docs] types_or: [c, c++, header] verbose: false require_serial: true diff --git a/bootloader b/bootloader new file mode 160000 index 0000000..0bf633b --- /dev/null +++ b/bootloader @@ -0,0 +1 @@ +Subproject commit 0bf633be000a2b62796e071a18b93c1018d3e369 diff --git a/tools/doxy-coverage.py b/tools/doxy-coverage.py index 92cae26..ea42100 100755 --- a/tools/doxy-coverage.py +++ b/tools/doxy-coverage.py @@ -42,6 +42,7 @@ __copyright__ = "Copyright (C) 2014 Alvaro Lopez Ortega" from filecmp import cmp import os +import subprocess import sys import argparse import xml.etree.ElementTree as ET @@ -62,6 +63,20 @@ def FATAL(*objs): sys.exit(0 if ns.no_error else 1) +def generate_docs(): + print("Generating Doxygen documentation...") + proc = subprocess.run( + "doxygen Doxyfile", + shell=True, + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, + ) + if proc.returncode == 0: + print("Documentation generated") + else: + FATAL("Failed to generate documentation. Exiting.") + + def parse_file(fullpath): tree = ET.parse(fullpath) @@ -200,12 +215,20 @@ def main(): default=ACCEPTABLE_COVERAGE, type=int, ) + parser.add_argument( + "--generate-docs", + action="store_true", + help="Generate Doxygen documentation before checking coverage", + ) global ns ns = parser.parse_args() if not ns: FATAL("ERROR: Couldn't parse parameters") + if ns.generate_docs: + generate_docs() + # Parse files = parse(ns.dir)