From b863a46805c03ec755e7e69f1964d6231ed56ec5 Mon Sep 17 00:00:00 2001
From: SamYaple <sam@yaple.net>
Date: Wed, 13 Jan 2016 16:44:11 +0000
Subject: [PATCH] Standardize bashate and add linters

The linters gate combindes pep8 and bashate (and then any other
linters we want). This changes bashate to be a sript rather than doing
a script inline. This matches the way other projects (and
project-config themselves) uses bashate [1].

Once a change upstream merges we can remove the redundant pep8 and
bashate gates.

[1] https://github.com/openstack-infra/project-config/blob/master/tox.ini#L11
https://github.com/openstack-infra/project-config/blob/master/tools/run-bashate.sh

Related-Id: I2afa7931bf3e18798b95a8af33ccf5ef761c4ad5

TrivialFix

Change-Id: I2ea2c1156e1b4de008f19e333e2740795dc406de
---
 .gitignore            |  1 +
 test-requirements.txt |  1 +
 tools/run-bashate.sh  |  7 +++++++
 tox.ini               | 10 ++++++----
 4 files changed, 15 insertions(+), 4 deletions(-)
 create mode 100755 tools/run-bashate.sh

diff --git a/.gitignore b/.gitignore
index ed49576956..f575bf3cea 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,7 @@
 # Files generated by setup.py
 kolla.egg-info
 build
+.eggs
 
 # Files generated by tools/genenv
 openrc
diff --git a/test-requirements.txt b/test-requirements.txt
index 8a869a77e9..dadf6274e7 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -1,6 +1,7 @@
 # The order of packages is significant, because pip processes them in the order
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
+bashate>=0.2 # Apache-2.0
 hacking>=0.10.0
 oslo.log>=1.14.0 # Apache-2.0
 oslotest>=1.10.0 # Apache-2.0
diff --git a/tools/run-bashate.sh b/tools/run-bashate.sh
new file mode 100755
index 0000000000..897228c81b
--- /dev/null
+++ b/tools/run-bashate.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+# Ignore E006 -- line length greater than 80 char
+
+ROOT=$(readlink -fn $(dirname $0)/.. )
+find $ROOT -not -wholename \*.tox/\* -and -not -wholename \*.test/\* \
+    -and -name \*.sh -print0 | xargs -0 bashate -v --ignore E006
diff --git a/tox.ini b/tox.ini
index 12fa0bc301..8634f614ad 100644
--- a/tox.ini
+++ b/tox.ini
@@ -14,6 +14,11 @@ commands =
   find . -type f -name "*.pyc" -delete
   python setup.py test --slowest --testr-args='{posargs}'
 
+[testenv:linters]
+commands =
+  {toxinidir}/tools/run-bashate.sh
+  flake8 {posargs}
+
 [testenv:pep8]
 commands =
   flake8
@@ -31,11 +36,8 @@ commands =
   {toxinidir}/tools/validate-all-maintainer.sh
 
 [testenv:bashate]
-deps = bashate
-whitelist_externals = bash
-# tox improperly interprets # and {1} in regex, so match on [[:punct:]]+
 commands =
-  bash -c "files=`egrep -rlI --exclude-dir .git --exclude-dir .tox '^[[:punct:]]+!/(bin/|/usr/bin/env )(ba)?sh' .` && bashate $files"
+  {toxinidir}/tools/run-bashate.sh
 
 [testenv:setupenv]
 whitelist_externals = bash