60 lines
1.7 KiB
Bash
60 lines
1.7 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
# This script will check anaconda for any pychecker warning using a set of
|
||
|
# options minimizing false positives, in combination with filtering of any
|
||
|
# warning regularexpressions listed in pychecker-false-positives.
|
||
|
#
|
||
|
# If any warnings our found they will be stored in pychecker-log and printed
|
||
|
# to stdout and this script will exit with a status of 1, if no (non filtered)
|
||
|
# warnings are found it exits with a status of 0
|
||
|
|
||
|
FALSE_POSITIVES=pychecker-false-positives
|
||
|
NON_STRICT_OPTIONS="--no-deprecated --no-returnvalues --no-abstract"
|
||
|
|
||
|
usage () {
|
||
|
echo "usage: `basename $0` [--strict] [--help]"
|
||
|
exit $1
|
||
|
}
|
||
|
|
||
|
while [ $# -gt 0 ]; do
|
||
|
case $1 in
|
||
|
--strict)
|
||
|
NON_STRICT_OPTIONS=""
|
||
|
;;
|
||
|
--help)
|
||
|
usage 0
|
||
|
;;
|
||
|
*)
|
||
|
echo "Error unknown option: $1"
|
||
|
usage 1
|
||
|
esac
|
||
|
shift
|
||
|
done
|
||
|
|
||
|
if [ "`tail -c 1 pychecker-false-positives`" == "`echo`" ]; then
|
||
|
echo "Error $FALSE_POSITIVES ends with an enter."
|
||
|
echo "Error the last line of $FALSE_POSITIVES should never have an enter!"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
export PYTHONPATH=".:.libs:isys:isys/.libs:textw:iw:installclasses:/usr/share/system-config-date"
|
||
|
|
||
|
pychecker --only --limit 1000 \
|
||
|
--maxlines 500 --maxargs 20 --maxbranches 80 --maxlocals 60 --maxreturns 20 \
|
||
|
--no-callinit --no-local --no-shadow --no-shadowbuiltin \
|
||
|
--no-import --no-miximport --no-pkgimport --no-reimport \
|
||
|
--no-argsused --no-varargsused --no-override \
|
||
|
$NON_STRICT_OPTIONS \
|
||
|
anaconda anaconda *.py textw/*.py iw/*.py installclasses/*.py isys/*.py booty/*.py booty/*/*.py | \
|
||
|
egrep -v "`cat $FALSE_POSITIVES | tr '\n' '|'`" > pychecker-log
|
||
|
|
||
|
if [ -s pychecker-log ]; then
|
||
|
echo "Pychecker reports the following issues:"
|
||
|
cat pychecker-log
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
rm pychecker-log
|
||
|
|
||
|
exit 0
|