forked from Ponysearch/Ponysearch
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:
parent
22d05b3e59
commit
bdf392093a
4 changed files with 50 additions and 15 deletions
6
Makefile
6
Makefile
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue