From f2328d200e9a4bca8c83df9055dbd991678c76fc Mon Sep 17 00:00:00 2001 From: Adam Wright Date: Mon, 15 Feb 2016 20:01:51 -0800 Subject: [PATCH] pre-commit doesn't modify files, just checks foramtting --- hooks/pre-commit | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/hooks/pre-commit b/hooks/pre-commit index 76294cc..7314a73 100755 --- a/hooks/pre-commit +++ b/hooks/pre-commit @@ -51,23 +51,6 @@ else printf "${SUCCESS}\n" fi -function fmt() { - printf "${PREFIX} Running rustfmt on $1 ... " - (cd $1 && cargo-fmt -q) - FMTRESULT=$? - if [ "${TARPC_SKIP_RUSTFMT}" == 1 ]; then - printf "${SKIPPED}\n" - elif [ ${FMTRESULT} != 0 ]; then - FAILED=1 - printf "${FAILURE}\n" - else - printf "${SUCCESS}\n" - fi -} - -fmt tarpc -fmt tarpc_examples - printf "${PREFIX} Checking for bad whitespace ... " git diff-index --check --cached $against -- &>/dev/null if [ "$?" != 0 ]; then @@ -77,6 +60,28 @@ else printf "${SUCCESS}\n" fi +printf "${PREFIX} Checking formatting ... " +FMTRESULT=0 +for file in $(git diff --name-only --cached); +do + if [ ${file: -3} == ".rs" ]; then + HASH=$(shasum $file) + NEW_HASH=$(rustfmt --write-mode=display $file | shasum) + if [ "${HASH}" != "${NEW_HASH}" ]; then + FMTRESULT=1 + fi + fi +done + +if [ "${TARPC_SKIP_RUSTFMT}" == 1 ]; then + printf "${SKIPPED}\n"$? +elif [ ${FMTRESULT} != 0 ]; then + FAILED=1 + printf "${FAILURE}\n" +else + printf "${SUCCESS}\n" +fi + if [ ${FAILED} != 0 ]; then exit 1 fi