Commit 3a2dd105 authored by Eric Paris's avatar Eric Paris

Speed up pre-commit by always passing at least one file to programs

Some programs like the boilerplate or the flag checker will check the whole repo if they aren't given a specific set of files to test. If you use `git commit --amend` to change commit messages you will be calling these functions with no args, and thus it take a lot longer to commit no changes than it does to actually commit changes!
parent 081d9c64
......@@ -40,6 +40,12 @@ echo "${reset}"
echo -ne "Checking for files that need boilerplate... "
files=($(git diff --cached --name-only --diff-filter ACM))
# We always make sure there is one file in the files list. Some tools check
# the whole repo if they get no files, so in fact, this is much faster on
# git commit --amend
if [[ ${#files[@]} -eq 0 ]]; then
files+=("README.md")
fi
out=($(hack/boilerplate/boilerplate.py "${files[@]}"))
if [[ "${#out}" -ne 0 ]]; then
echo "${red}ERROR!"
......@@ -54,10 +60,8 @@ else
fi
echo "${reset}"
allfiles=($(git diff --cached --name-only --diff-filter ACM | grep -v -e "third_party" -e "Godeps"))
echo -ne "Checking for problems with flag names... "
invalid_flag_lines=$(hack/verify-flags-underscore.py "${allfiles[@]}")
invalid_flag_lines=$(hack/verify-flags-underscore.py "${files[@]}")
if [[ "${invalid_flag_lines:-}" != "" ]]; then
echo "${red}ERROR!"
echo "There appear to be problems with the following"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment