[GLOBAL] Move checkbashisms to a dedicated script 99/126199/3
authorguillaume.lambert <guillaume.lambert@orange.com>
Fri, 10 Dec 2021 20:17:30 +0000 (21:17 +0100)
committerguillaume.lambert <guillaume.lambert@orange.com>
Sat, 11 Dec 2021 23:23:51 +0000 (00:23 +0100)
Using a dedicated shell script rather than scripts commands directly
in tox.ini configuration is usually recommanded.
It avoids quoting hell issues and ensures a better virtualenv isolation.

Issue-ID: OOM-2643
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Co-authored-by: Sylvain Desbureaux <sylvain.desbureaux@orange.com>
Change-Id: Ic4764f628d6f8c3bb4d0dd36a0559603c80f6c4a

.ci/check-bashisms.sh [new file with mode: 0755]
tox.ini

diff --git a/.ci/check-bashisms.sh b/.ci/check-bashisms.sh
new file mode 100755 (executable)
index 0000000..0dae225
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+# Copyright © 2021 Orange
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+if ! which checkbashisms >/dev/null && ! sudo yum install devscripts-minimal && ! sudo apt-get install devscripts
+then
+    printf "checkbashisms command not found - please install it \n\
+            (e.g. sudo apt-get install devscripts | yum install devscripts-minimal )\n" >&2
+    exit 2
+fi
+find . -not -path '*/.*' -name '*.sh' -exec checkbashisms {} + || exit 3
+find . -not -path '*/.*' -name '*.failover' -exec checkbashisms -f \{\} + || exit 4
+! find . -not -path '*/.*' -name '*.sh' -exec grep 'local .*=' {} + || exit 5
+! find . -not -path '*/.*' -name '*.failover' -exec grep 'local .*=' {} + || exit 6
+exit 0
diff --git a/tox.ini b/tox.ini
index dee4f3a..337b397 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -57,17 +57,10 @@ commands =
 
 [testenv:checkbashisms]
 deps =
 
 [testenv:checkbashisms]
 deps =
-whitelist_externals = sh
-                      find
-                      checkbashisms
+whitelist_externals =
+    {toxinidir}/.ci/check-bashisms.sh
 commands =
 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 \{\} +
-    find . -not -path '*/\.*' -name *.failover -exec checkbashisms -f \{\} +
-    sh -c "! find . -not -path '*/\.*' -name *.sh -exec grep 'local .*=' \{\} + || exit 2"
-    sh -c "! find . -not -path '*/\.*' -name *.failover -exec grep 'local .*=' \{\} + || exit 2"
+    {toxinidir}/.ci/check-bashisms.sh
 
 [testenv:autopep8]
 deps =
 
 [testenv:autopep8]
 deps =