project-config/tools/check_valid_gerrit_config.sh
Andreas Jaeger c0b40b37e0 Silence bashate
The remaining bashate warnings was E042:
 The return value of "local" is always 0; errors in subshells
 used for declaration are thus hidden and will not trigger "set
 -e".

Fix the few cases this triggered so that we don't get confused anymore
about the message.

Remove -v from bashate invocation, we don't need to print out all the
filenames anymore.

Change-Id: I47991a7040c8b9183bc72cce8e5d95b2cec7e6c5
2018-03-26 09:13:55 +02:00

42 lines
1.0 KiB
Bash
Executable File

#!/bin/bash -e
# It checks that *.config files respect certain gerrit ACL rules
export TMPDIR=$(/bin/mktemp -d)
trap "rm -rf $TMPDIR" EXIT
pushd $TMPDIR
CONFIGS_LIST_BASE=$OLDPWD/$1
function check_team_acl {
local configs_dir="$1"
local configs_list
local failure=0
configs_list=$(find $configs_dir -name "*.config")
for config in $configs_list; do
$OLDPWD/tools/normalize_acl.py $config all > $TMPDIR/normalized
if ! diff -u $config $TMPDIR/normalized >>config_failures;
then
echo "Project $config is not normalized!" >>config_failures
fi
done
}
# Add more namespaces here, if necessary
for namespace in openstack openstack-dev openstack-infra stackforge; do
check_team_acl "${CONFIGS_LIST_BASE}${namespace}"
done
num_errors=$(cat config_failures | grep "is not normalized" | wc -l)
if [ $num_errors -ne 0 ]; then
echo -e; cat config_failures
echo -e "There are $num_errors projects not normalized."
exit 1
fi
echo "Gerrit ACL configs are valid!"
popd