#!/bin/bash # # Copyright 2015 Google LLC # # This is a pre-push hook that does the following before uploading a # CL for review: # 1) check that python sources have been formatted with yapf. # 2) allows the user to run the unit tests. mydir="$(dirname "$(readlink -m "$0")")" z40=0000000000000000000000000000000000000000 while IFS=' ' read local_ref local_sha remote_ref remote_sha; do if [[ "$local_sha" != $z40 ]]; then if [[ "$remote_sha" == $z40 ]]; then # New branch, examine commit on top of branch. range="$local_sha" else # Update to existing branch, examine new commits range="$remote_sha..$local_sha" fi all_files="$(git show --pretty="format:" --name-only "${range}")" # Note that ${all_files} may include files that were deleted. Hence, we # ignore any complaints about missing files. IGNORE_MISSING=1 "${mydir}/check-presubmit" ${all_files} || exit 1 fi done exit 0