From 6e2d02852c1537e42a68485b864fd1376c805326 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Mon, 1 May 2023 17:23:46 +1000 Subject: [PATCH] Safety checks for required apps. --- builddefs/docs/sidebars.js | 6 +++--- lib/python/qmk/cli/docs.py | 10 ++++++++++ lib/python/qmk/cli/generate/docs.py | 9 +++++++++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/builddefs/docs/sidebars.js b/builddefs/docs/sidebars.js index e66812b989d..090f808ab5b 100644 --- a/builddefs/docs/sidebars.js +++ b/builddefs/docs/sidebars.js @@ -251,9 +251,9 @@ const sidebars = { type: 'category', label: "Past Breaking Changes", link: { - type: 'generated-index', - title: 'Past Breaking Changes', - slug: '/breaking_changes/all', + type: 'generated-index', + title: 'Past Breaking Changes', + slug: '/breaking_changes/all', }, items: [ { diff --git a/lib/python/qmk/cli/docs.py b/lib/python/qmk/cli/docs.py index 13c7ea38a93..01cb2248a8a 100644 --- a/lib/python/qmk/cli/docs.py +++ b/lib/python/qmk/cli/docs.py @@ -1,5 +1,6 @@ """Serve QMK documentation locally """ +import shutil from qmk.docs import prepare_docs_build_area, run_docs_command from milc import cli @@ -9,5 +10,14 @@ from milc import cli def docs(cli): """Spin up a local HTTP server for the QMK docs. """ + + if not shutil.which('doxygen'): + cli.log.error('doxygen is not installed. Please install it and try again.') + return + + if not shutil.which('npm'): + cli.log.error('npm is not installed. Please install it and try again.') + return + prepare_docs_build_area() run_docs_command('start', False) diff --git a/lib/python/qmk/cli/generate/docs.py b/lib/python/qmk/cli/generate/docs.py index c828dd8be3a..0dff001de3d 100644 --- a/lib/python/qmk/cli/generate/docs.py +++ b/lib/python/qmk/cli/generate/docs.py @@ -1,5 +1,6 @@ """Build QMK documentation locally """ +import shutil from qmk.docs import prepare_docs_build_area, run_docs_command, BUILD_DOCS_PATH from milc import cli @@ -14,6 +15,14 @@ def generate_docs(cli): * [ ] Add a real build step... something static docs """ + if not shutil.which('doxygen'): + cli.log.error('doxygen is not installed. Please install it and try again.') + return + + if not shutil.which('npm'): + cli.log.error('npm is not installed. Please install it and try again.') + return + prepare_docs_build_area() cli.log.info('Building docusaurus docs')