mirror of
https://github.com/kk7ds/chirp.git
synced 2024-09-21 10:37:15 +00:00
73 lines
1.5 KiB
Bash
Executable File
73 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# CHIRP coding standards compliance script
|
|
#
|
|
# To add a test to this file, create a new check_foo() function
|
|
# and then add it to the list of TESTS= below
|
|
#
|
|
|
|
TESTS="check_long_lines check_bug_number check_commit_message_line_length"
|
|
|
|
function check_long_lines() {
|
|
local rev="$1"
|
|
local files="$2"
|
|
|
|
# For now, ignore this check on chirp/
|
|
files=$(echo $files | sed -r 's#\bchirp[^ ]*\b##')
|
|
|
|
if [ -z "$files" ]; then
|
|
return
|
|
fi
|
|
|
|
pep8 --select=E501 $files || \
|
|
error "Please use <80 columns in source files"
|
|
}
|
|
|
|
function check_bug_number() {
|
|
local rev="$1"
|
|
hg log -vr $rev | grep -qE '#[0-9]+' || \
|
|
error "A bug number is required like #123"
|
|
}
|
|
|
|
function _less_than_80() {
|
|
while true; do
|
|
read line
|
|
if [ -z "$line" ]; then
|
|
break
|
|
elif [ $(echo -n "$line" | wc -c) -ge 80 ]; then
|
|
return 1
|
|
fi
|
|
done
|
|
}
|
|
|
|
function check_commit_message_line_length() {
|
|
local rev="$1"
|
|
hg log -vr $rev | (_less_than_80) || \
|
|
error "Please keep commit message lines to <80 columns"
|
|
}
|
|
|
|
# --- END OF TEST FUNCTIONS ---
|
|
|
|
function error() {
|
|
echo FAIL: $*
|
|
ERROR=1
|
|
}
|
|
|
|
function get_touched_files() {
|
|
local rev="$1"
|
|
hg status -n --change $rev | grep '\.py$'
|
|
}
|
|
|
|
rev=${1:-tip}
|
|
files=$(get_touched_files $rev)
|
|
|
|
for testname in $TESTS; do
|
|
eval "$testname $rev \"$files\""
|
|
done
|
|
|
|
if [ -z "$ERROR" ]; then
|
|
echo "Patch '${rev}' is OK"
|
|
else
|
|
exit 1
|
|
fi
|