From 3543b34f2b43956d8d7187ceec37963d3ef9aab3 Mon Sep 17 00:00:00 2001 From: Tim Kuehn Date: Thu, 25 Feb 2016 00:13:58 -0800 Subject: [PATCH 1/3] Fix formatting check. * shasum suffixes the checksum with '- filename' so pipe in the text instead. * rustfmt prefixes the formatting with 'Using rustfmt config file filename' so pipe in the text instead. --- hooks/pre-commit | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hooks/pre-commit b/hooks/pre-commit index 3960d13..4dc81e2 100755 --- a/hooks/pre-commit +++ b/hooks/pre-commit @@ -92,8 +92,10 @@ 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) + HASH=$(shasum < $file) + NEW_HASH=$(rustfmt --write-mode=display < $file | shasum) + echo $HASH + echo $NEW_HASH if [ "${HASH}" != "${NEW_HASH}" ]; then FMTRESULT=1 fi From ef96c87226d310f68fca1121a2bc607c1ff85584 Mon Sep 17 00:00:00 2001 From: Tim Kuehn Date: Thu, 25 Feb 2016 00:18:51 -0800 Subject: [PATCH 2/3] Skip children when rustfmting in pre-commit --- hooks/pre-commit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hooks/pre-commit b/hooks/pre-commit index 4dc81e2..c033d45 100755 --- a/hooks/pre-commit +++ b/hooks/pre-commit @@ -93,7 +93,7 @@ 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) + NEW_HASH=$(rustfmt --skip-children --write-mode=display < $file | shasum) echo $HASH echo $NEW_HASH if [ "${HASH}" != "${NEW_HASH}" ]; then From a8766a92001df93c554370f28bf46887d1abbdbd Mon Sep 17 00:00:00 2001 From: Tim Kuehn Date: Thu, 25 Feb 2016 00:48:28 -0800 Subject: [PATCH 3/3] Use rustfmt --write-mode=diff in lieu of hashes --- hooks/pre-commit | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/hooks/pre-commit b/hooks/pre-commit index c033d45..335bb2f 100755 --- a/hooks/pre-commit +++ b/hooks/pre-commit @@ -92,11 +92,9 @@ FMTRESULT=0 for file in $(git diff --name-only --cached); do if [ ${file: -3} == ".rs" ]; then - HASH=$(shasum < $file) - NEW_HASH=$(rustfmt --skip-children --write-mode=display < $file | shasum) - echo $HASH - echo $NEW_HASH - if [ "${HASH}" != "${NEW_HASH}" ]; then + diff=$(rustfmt --skip-children --write-mode=diff $file) + result=$(echo $diff | grep --quiet "^Diff at line") + if $result; then FMTRESULT=1 fi fi @@ -107,6 +105,7 @@ if [ "${TARPC_SKIP_RUSTFMT}" == 1 ]; then elif [ ${FMTRESULT} != 0 ]; then FAILED=1 printf "${FAILURE}\n" + echo "$diff" | sed '/Using rustfmt.*$/d' else printf "${SUCCESS}\n" fi