mirror of https://github.com/status-im/cabot.git
Add Bash linting using bashate (#566)
bashate is "a pep8 equivalent for bash scripts" by OpenStack. https://docs.openstack.org/bashate/latest/ - Add tox target running bashate on the entire code-base - Fix docker-entrypoint script accordingly
This commit is contained in:
parent
12d054efeb
commit
6a9eff8f64
|
@ -1,25 +1,25 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
function wait_for_broker {(
|
function wait_for_broker {
|
||||||
set +e
|
set +e
|
||||||
for try in {1..60} ; do
|
for try in {1..60} ; do
|
||||||
python -c "from kombu import Connection; x=Connection('$CELERY_BROKER_URL', timeout=1); x.connect()" && break
|
python -c "from kombu import Connection; x=Connection('$CELERY_BROKER_URL', timeout=1); x.connect()" && break
|
||||||
echo "Waiting for celery broker to respond..."
|
echo "Waiting for celery broker to respond..."
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
)}
|
}
|
||||||
|
|
||||||
function wait_for_database {(
|
function wait_for_database {
|
||||||
set +e
|
set +e
|
||||||
for try in {1..60} ; do
|
for try in {1..60} ; do
|
||||||
python -c "from django.db import connection; connection.connect()" && break
|
python -c "from django.db import connection; connection.connect()" && break
|
||||||
echo "Waiting for database to respond..."
|
echo "Waiting for database to respond..."
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
)}
|
}
|
||||||
|
|
||||||
function wait_for_migrations {(
|
function wait_for_migrations {
|
||||||
set +e
|
set +e
|
||||||
for try in {1..60} ; do
|
for try in {1..60} ; do
|
||||||
# Kind of ugly but not sure if there's another way to determine if migrations haven't run.
|
# Kind of ugly but not sure if there's another way to determine if migrations haven't run.
|
||||||
|
@ -28,7 +28,7 @@ function wait_for_migrations {(
|
||||||
echo "Waiting for database migrations to be run..."
|
echo "Waiting for database migrations to be run..."
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
)}
|
}
|
||||||
|
|
||||||
|
|
||||||
wait_for_broker
|
wait_for_broker
|
||||||
|
|
19
tox.ini
19
tox.ini
|
@ -1,12 +1,29 @@
|
||||||
[tox]
|
[tox]
|
||||||
envlist = config,flake8
|
envlist = config,flake8,bashate
|
||||||
skipsdist = True
|
skipsdist = True
|
||||||
|
|
||||||
|
[testenv]
|
||||||
|
whitelist_externals =
|
||||||
|
bash
|
||||||
|
|
||||||
[testenv:config]
|
[testenv:config]
|
||||||
commands =
|
commands =
|
||||||
/bin/bash -c 'set -euo pipefail && . ./conf/production.env.example'
|
/bin/bash -c 'set -euo pipefail && . ./conf/production.env.example'
|
||||||
/bin/bash -c 'set -euo pipefail && . ./conf/development.env.example'
|
/bin/bash -c 'set -euo pipefail && . ./conf/development.env.example'
|
||||||
|
|
||||||
|
[testenv:bashate]
|
||||||
|
deps = bashate==0.5.1
|
||||||
|
commands =
|
||||||
|
# Run bashate check for all bash scripts
|
||||||
|
# Ignores the following rules:
|
||||||
|
# E003: Indent not multiple of 4 (we use multiples of 2)
|
||||||
|
# E006: Line longer than 79 columns
|
||||||
|
bash -c "grep --recursive --binary-files=without-match \
|
||||||
|
--files-with-match '^.!.*\(ba\)\?sh$' \
|
||||||
|
--exclude-dir .tox \
|
||||||
|
--exclude-dir .git \
|
||||||
|
{toxinidir} | xargs bashate --error . --verbose --ignore=E003,E006"
|
||||||
|
|
||||||
[testenv:flake8]
|
[testenv:flake8]
|
||||||
deps =
|
deps =
|
||||||
flake8
|
flake8
|
||||||
|
|
Loading…
Reference in New Issue