#!/bin/sh trap 'rm -rf "$temp_dir"' EXIT temp_dir=".tmp" IFS=' ' for staged_file in $(git diff --cached --name-only); do [ -f "${staged_file}" ] || continue [ "${staged_file##*.}" = "java" ] || continue check_files=y mkdir -p "$temp_dir/$(dirname "$staged_file")" git show :"$staged_file" > "$temp_dir/$staged_file" done unset IFS [ -z "$check_files" ] && exit 0 printf "%s\n" "-a -n --set-exit-if-changed" > "$temp_dir/gf_config" find "$temp_dir" -name '*.java' >> "$temp_dir/gf_config" output=$(./mvnw -q exec:java \ -Dexec.mainClass="com.google.googlejavaformat.java.Main" \ -Dexec.args="@$temp_dir/gf_config") if [ $? != 0 ]; then echo 'Run "./mvnw -q com.coveo:fmt-maven-plugin:format" first.' >&2 echo "Following files were rejected by the formatter:" >&2 escaped=$(printf '%s\n' "$temp_dir/" | sed 's/[[\.*^$/]/\\&/g') printf "%s\n" "$output" | sed "s/$escaped/ /" >&2 exit 1 fi