build requirements: add a shell script static analysis tool

ShellCheck: https://github.com/koalaman/shellcheck

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
Markus Heiser 2020-01-08 18:09:36 +01:00
parent 22d05b3e59
commit bdf392093a
4 changed files with 50 additions and 15 deletions

View file

@ -70,12 +70,14 @@ $(GH_PAGES)::
# test # test
# ---- # ----
PHONY += test test.pylint test.pep8 test.unit test.robot PHONY += test test.sh test.pylint test.pep8 test.unit test.robot
# TODO: balance linting with pylint # TODO: balance linting with pylint
test: test.pep8 test.unit test.robot test: test.pep8 test.unit test.sh test.robot
- make pylint - make pylint
test.sh:
test.pep8: pyenvinstall test.pep8: pyenvinstall
$(PY_ENV_ACT); ./manage.sh pep8_check $(PY_ENV_ACT); ./manage.sh pep8_check

View file

@ -35,8 +35,17 @@ processing additional packages are needed. The XeTeX_ needed not only for PDF
creation, its also needed for :ref:`math` when HTML output is build. creation, its also needed for :ref:`math` when HTML output is build.
To be able to do :ref:`sphinx:math-support` without CDNs, the math are rendered To be able to do :ref:`sphinx:math-support` without CDNs, the math are rendered
as images (``sphinx.ext.imgmath`` extension). If your docs build (``make as images (``sphinx.ext.imgmath`` extension).
docs``) shows warnings like this::
Here is the extract from the :origin:`docs/conf.py` file, setting math renderer
to ``imgmath``:
.. literalinclude:: ../conf.py
:language: python
:start-after: # sphinx.ext.imgmath setup
:end-before: # sphinx.ext.imgmath setup END
If your docs build (``make docs``) shows warnings like this::
WARNING: dot(1) not found, for better output quality install \ WARNING: dot(1) not found, for better output quality install \
graphviz from http://www.graphviz.org graphviz from http://www.graphviz.org
@ -47,8 +56,6 @@ docs``) shows warnings like this::
you need to install additional packages on your build host, to get better HTML you need to install additional packages on your build host, to get better HTML
output. output.
.. _system requirements:
.. tabs:: .. tabs::
.. group-tab:: Ubuntu / debian .. group-tab:: Ubuntu / debian
@ -94,10 +101,35 @@ For PDF output you also need:
texlive-collection-fontsrecommended texlive-collection-latex \ texlive-collection-fontsrecommended texlive-collection-latex \
dejavu-sans-fonts dejavu-serif-fonts dejavu-sans-mono-fonts dejavu-sans-fonts dejavu-serif-fonts dejavu-sans-mono-fonts
.. _system requirements END: .. _sh lint:
.. literalinclude:: ../conf.py Lint shell scripts
:language: python ==================
:start-after: # sphinx.ext.imgmath setup
:end-before: # sphinx.ext.imgmath setup END
.. _ShellCheck: https://github.com/koalaman/shellcheck
To lint shell scripts, we use ShellCheck_ - A shell script static analysis tool.
.. SNIP sh lint requirements
.. tabs::
.. group-tab:: Ubuntu / debian
.. code-block:: sh
$ sudo apt install shellcheck
.. group-tab:: Arch Linux
.. code-block:: sh
$ sudo pacman -S shellcheck
.. group-tab:: Fedora / RHEL
.. code-block:: sh
$ sudo dnf install ShellCheck
.. SNAP sh lint requirements

View file

@ -11,6 +11,8 @@ Makefile Targets
Before looking deeper at the targets, first read about :ref:`makefile setup` Before looking deeper at the targets, first read about :ref:`makefile setup`
and :ref:`make pyenv`. and :ref:`make pyenv`.
To install system requirements follow :ref:`buildhosts`.
With the aim to simplify development cycles, started with :pull:`1756` a With the aim to simplify development cycles, started with :pull:`1756` a
``Makefile`` based boilerplate was added. If you are not familiar with ``Makefile`` based boilerplate was added. If you are not familiar with
Makefiles, we recommend to read gnu-make_ introduction. Makefiles, we recommend to read gnu-make_ introduction.
@ -170,7 +172,7 @@ e.g.:
.. code:: sh .. code:: sh
$ make test.pep8 test.unit $ make test.pep8 test.unit test.sh
. ./local/py3/bin/activate; ./manage.sh pep8_check . ./local/py3/bin/activate; ./manage.sh pep8_check
[!] Running pep8 check [!] Running pep8 check
. ./local/py3/bin/activate; ./manage.sh unit_tests . ./local/py3/bin/activate; ./manage.sh unit_tests

View file

@ -1312,9 +1312,8 @@ others are basic-tabs_ and code-tabs_. Below a *group-tab* example from
.. literalinclude:: ../admin/buildhosts.rst .. literalinclude:: ../admin/buildhosts.rst
:language: reST :language: reST
:start-after: .. _system requirements: :start-after: .. SNIP sh lint requirements
:end-before: .. _system requirements END: :end-before: .. SNAP sh lint requirements
.. _math: .. _math: