[COMMON] Add a checkbashisms tox profile 22/118922/7
authorGuillaume Lambert <guillaume.lambert@orange.com>
Mon, 8 Mar 2021 20:49:28 +0000 (21:49 +0100)
committerSylvain Desbureaux <sylvain.desbureaux@orange.com>
Tue, 6 Apr 2021 12:01:13 +0000 (12:01 +0000)
to identify potential bashisms in scripts
and ensure compatibility with dash and other POSIX shells
as often found in MAC OS X and BSD or UNIX systems.

Though bash is a good interactive user shell,
many UN*X systems and GNU+Linux distributions now prefers Almquist
or Kornshell variants for scripting in order to improve the system
performance and maintenability.

https://wiki.ubuntu.com/DashAsBinSh
https://mywiki.wooledge.org/Bashism
https://en.wikipedia.org/wiki/Almquist_shell

Issue-ID: OOM-2643
Signed-off-by: Guillaume Lambert <guillaume.lambert@orange.com>
Change-Id: Ibfa114f5c4797e526edc6f59397117e093868c24

tox.ini

diff --git a/tox.ini b/tox.ini
index fb6aca0..fcabf9c 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -43,6 +43,17 @@ deps =
 commands =
   gitlint
 
+[testenv:checkbashisms]
+deps =
+whitelist_externals = sh
+                      find
+                      checkbashisms
+commands =
+    sh -c 'which checkbashisms>/dev/null  || sudo yum install devscripts-minimal || sudo apt-get install devscripts \
+        || (echo "checkbashisms command not found - please install it (e.g. sudo apt-get install devscripts | \
+        yum install devscripts-minimal )" >&2 && exit 1)'
+    find . -not -path '*/\.*' -name *.sh -exec checkbashisms -f  \{\} +
+
 [testenv:autopep8]
 deps = autopep8
 commands =