scripts: find areas without maintainer

The section titles are filtered to print only those which
are not associated with an email address.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
This commit is contained in:
Thomas Monjalon 2015-02-06 20:24:29 +01:00
parent 441a2256b3
commit e12f553035

View File

@ -70,14 +70,22 @@ parse_fx () # <index file>
whitelist=$(files $flines)
blacklist=$(files $xlines)
match=$(aminusb "$whitelist" "$blacklist")
if [ -n "$whitelist" ] ; then
printf "# $title "
maintainers=$(echo "$maintainers" | sed -r 's,.*<(.*)>.*,\1,')
maintainers=$(printf "$maintainers" | sed -e 's,^,<,' -e 's,$,>,')
echo $maintainers
fi
if [ -n "$match" ] ; then
echo "# $title"
echo "$match"
fi
# flush section
unset maintainers
unset flines
unset xlines
elif echo "$line" | grep -q '^[A-Z]: ' ; then
# maintainer
maintainers=$(add_line_to_if "$line" "$maintainers" 'M: ')
# file matching pattern
flines=$(add_line_to_if "$line" "$flines" 'F: ')
# file exclusion pattern
@ -118,18 +126,32 @@ aminusb () # <lines a> <lines b>
printf "$1\n$2\n$2" | sort | uniq -u | sed '/^$/d'
}
all=$(files ./)
listed=$(parse_fx MAINTAINERS | sed '/^#/d' | sort -u)
printf 'sections: '
parsed=$(parse_fx MAINTAINERS)
echo "$parsed" | grep -c '^#'
printf 'with maintainer: '
echo "$parsed" | grep -c '^#.*@'
printf 'maintainers: '
grep '^M:.*<' MAINTAINERS | sort -u | wc -l
echo
echo '##########'
echo '# orphan areas'
echo '##########'
echo "$parsed" | sed -rn 's,^#([^@]*)$,\1,p' | uniq
echo
echo '##########'
echo '# files not listed'
echo '##########'
all=$(files ./)
listed=$(echo "$parsed" | sed '/^#/d' | sort -u)
aminusb "$all" "$listed"
echo
echo '##########'
echo '# wrong patterns'
echo '##########'
check_fx MAINTAINERS
# TODO: check overlaps
# TODO: check orphan areas