Rename validate-json target as pep8 and improve it

When discussing with the infra guys they have mentioned it would be
easier to call our linting job pep8, it's indeed badly named but that
target has been used all over openstack for linting projects. As a bonus
point it would make things easier to add the job to the gate. To make
that patch much more interesting than a three characters change I have
improved the validate-samples script to detect if jsonlint was present
and if not fallback to the standard python -mjson.tool which give you
less details but nonetheless works if jsonlint is present.

Change-Id: I8d71a229917004dfd7223a16e4f270101cf2f0a8
This commit is contained in:
Chmouel Boudjnah 2014-10-03 21:05:00 +02:00
parent 76a1602900
commit 5aa235066c
2 changed files with 22 additions and 7 deletions

View File

@ -1,17 +1,32 @@
#!/bin/bash
set -e
TMPFILE=$(mktemp)
ret=0
# For MacOSX users the freebsd's mktemp by default behave diferently,
# installing the coreutils from brew would give you this but that would be
# renamed to gmktemp to don't conflict with the stand mktemp, so let just use
# that if available.
if type -p gmktemp &>/dev/null; then
TMPFILE=$(gmktemp)
else
TMPFILE=$(mktemp)
fi
function clean {
rm -f ${TMPFILE}
}
trap clean EXIT
for f in $(find docker/ -type f -name '*.json');do
jsonlint -s ${f} >${TMPFILE}
egrep -q 'has errors$' ${TMPFILE} && { cat ${TMPFILE}; ret=1 ;}
linter=jsonlint
type -p jsonlint &>/dev/null || linter=python
for f in $(find docker -type f -name '*.json');do
if [[ ${linter} == jsonlint ]];then
jsonlint -s ${f} >${TMPFILE}
egrep -q 'has errors$' ${TMPFILE} && { cat ${TMPFILE}; ret=1 ;}
else
python -m json.tool ${f} &>/dev/null || { echo "$f: has json errors"; ret=1; }
fi
done
cat ${TMPFILE}

View File

@ -1,11 +1,11 @@
[tox]
skipsdist = True
envlist = validate-json
envlist = pep8
minversion = 1.6
[testenv]
deps = -r{toxinidir}/test-requirements.txt
[testenv:validate-json]
[testenv:pep8]
commands =
{toxinidir}/tools/validate-json.sh