Update tox.ini bashate to test all bash scripts

Currently, the tox.ini file is only running bashate against files that
end in a .sh extension. However, many of the build tools do not have
an extension, and therefore don't have bashate executed against them.
This commit enhances the tox command to search for shell scripts
regardless of file extension.

The bashate ignore list has been updated to ignore all existing
warnings. Future updates can perform cleanup to address the
outstanding issues and remove items from the ignore list one by one.

The original check of .sh is maintained with a smaller ignore list, to
ensure new issues are not introduced.

Change-Id: I07e8ac83c6ed3d81e7bfad19da1eee1747d60802
Signed-off-by: Don Penney <don.penney@windriver.com>
This commit is contained in:
Don Penney 2020-01-15 14:22:45 -05:00
parent 1980075092
commit d184c69b7c
2 changed files with 20 additions and 5 deletions

1
.gitignore vendored
View File

@ -1,4 +1,5 @@
*.swp
.tox
/cgcs-centos-repo
/cgcs-tis-repo
/cgcs-3rd-party-repo

24
tox.ini
View File

@ -13,20 +13,34 @@ deps = -r{toxinidir}/test-requirements.txt
[testenv:linters]
basepython = python3
# ignore below cases
# E006 Line too long
# E010: Do not on same line as it commands
whitelist_externals = bash
# Bashate warnings
# E001 Trailing Whitespace
# E002 Tab indents
# E003 Indent not multiple of 4
# E006 Line too long
# E010 The "do" should be on same line as for
# E011 Then keyword is not on same line as if or elif keyword
# E020 Function declaration not in format ^function name {$
# E042 local declaration hides errors
commands =
bash -c "find {toxinidir} \
bash -c "find {toxinidir}/build-tools \
-not \( -type d -name .?\* -prune \) \
-type f \
-not -name \*~ \
-not -name \*.md \
-name \*.sh \
-print0 | xargs --no-run-if-empty -0 bashate -v -e 'E*' -i E006,E010"
bash -c "find {toxinidir}/build-tools \
-not \( -type d -name .?\* -prune \) \
-type f \
-not -name \*~ \
-not -name \*.md \
\( -exec bash -c 'file \{\} | grep -q shell' \; \
-a ! -name '*.sh' \) \
-print0 | xargs --no-run-if-empty -0 bashate -v -e 'E*' -i E001,E002,E003,E006,E010,E011,E020,E042"
bash -c "find {toxinidir} \
\( -name middleware/io-monitor/recipes-common/io-monitor/io-monitor/io_monitor/test-tools/yaml/* -prune \) \
\( -name stx -prune \) \
-o \( -name .tox -prune \) \
-o -type f -name '*.yaml' \
-print0 | xargs -0 yamllint"