7114e79485
Remove hardcoded list of namespaces with iterating over all directories in the check of valid ACLs. Remove parameter, we don't need to pass it in. Be more verbose and report directories scanned and number of ACL files read. Change-Id: I4193ac59b431d31f3ce835c93950745e5b742418
47 lines
1.1 KiB
Bash
Executable File
47 lines
1.1 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/gerrit/acls
|
|
|
|
declare -i NUM_TESTS=0
|
|
|
|
function check_team_acl {
|
|
local configs_dir="$1"
|
|
local configs_list
|
|
|
|
echo "Checking" $(basename $configs_dir)
|
|
configs_list=$(find $configs_dir -name "*.config")
|
|
for config in $configs_list; do
|
|
let "NUM_TESTS+=1"
|
|
$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 $CONFIGS_LIST_BASE/*; do
|
|
if [ -d $namespace ] ; then
|
|
check_team_acl "${namespace}"
|
|
fi
|
|
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!"
|
|
echo "Checked $NUM_TESTS ACL files"
|
|
|
|
popd
|