\### Goal
- reduce the tedious chore of removing trailing whitespaces
- ref. joelparkerhenderson#69 (comment)
\### Descriptions
- add pre-commit hook to remove trailing whitespaces
- flow
- collect the staged files
- check if any of these files have whitespace issues
- if so, cleanup process
- loop through the files and apply git-stripspace
\### Requirements
- `git config core.hooksPath .githooks` to activate the hook
- `git config core.quotepath false` for non-ascii paths
- also need to be documented(where?)
\### Test
- trailing spaces in following diff are cleaned up
- works on all type of file even for codes, not only for markdowns(docs)
```diff
diff --git a/.githooks/pre-commit b/.githooks/pre-commit
new file mode 100644
index 0000000..4d25c49
--- /dev/null
+++ b/.githooks/pre-commit
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+# Temporary file to store the list of files that need cleanup
+TEMP_FILE=$(mktemp)
+
+# Collect staged files with potential whitespace issues
+git diff --cached --name-only --diff-filter=ACM > "$TEMP_FILE"
+
+# Check if any of these files have whitespace issues
+NEEDS_CLEANUP=false
+while read -r FILE; do
+ if ! git diff --cached --check -- "$FILE"; then
+ NEEDS_CLEANUP=true
+ break
+ fi
+done < "$TEMP_FILE"
+
+# Cleanup process
+if [ "$NEEDS_CLEANUP" = true ]; then
+ # Loop through the files and apply git-stripspace
+ while read -r FILE; do
+ git show ":$FILE" | git stripspace > "$FILE"
+ git add "$FILE"
+ done < "$TEMP_FILE"
+
+ # Inform the user
+ echo 'Cleanup trailing whitespaces is done'
+fi
+
+# Clean up - remove the temporary file
+rm "$TEMP_FILE"
+
+if [ "$NEEDS_CLEANUP" = false ]; then
+ echo "no need to cleanup"
+fi
+# Continue with the original commit
+exit 0
diff --git "a/locales/ko/\355\205\234\355\224\214\353\246\277/\352\262\260\354\240\225 \352\270\260\353\241\235 \355\205\234\355\224\214\353\246\277\353\263\204 edgex/index.md" "b/locales/ko/\355\205\234\355\224\214\353\246\277/\352\262\260\354\240\225 \352\270\260\353\241\235 \355\205\234\355\224\214\353\246\277\353\263\204 edgex/index.md"
index f4c35a5..bdbed75 100644
--- "a/locales/ko/\355\205\234\355\224\214\353\246\277/\352\262\260\354\240\225 \352\270\260\353\241\235 \355\205\234\355\224\214\353\246\277\353\263\204 edgex/index.md"
+++ "b/locales/ko/\355\205\234\355\224\214\353\246\277/\352\262\260\354\240\225 \352\270\260\353\241\235 \355\205\234\355\224\214\353\246\277\353\263\204 edgex/index.md"
@@ -5,7 +5,7 @@ EdgeX Foundry의 ADR 템플릿입니다.
출처: https://docs.edgexfoundry.org/2.3/design/adr/template/
-### 제출자
+### 제출자
ADR 제출자를 나열합니다.
```
Signed-off-by: flavono123 <flavono123@gmail.com>