-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpre-commit
More file actions
executable file
·62 lines (51 loc) · 1.57 KB
/
pre-commit
File metadata and controls
executable file
·62 lines (51 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/bash
self_update() {
SELF_UPDATE="$1"
if [ "$SELF_UPDATE" == false ]; then return; fi
SELF="$0"
REMOTE_SCRIPT="https://raw.githubusercontent.com/cstaud/pre-commit-hook/master/pre-commit"
echo "Checking for self-update ..."
diff=$(diff "$SELF" <(curl -s "$REMOTE_SCRIPT"))
if [ -z "$diff" ]
then
echo "Already running on latest version, yeah!"
else
echo "Downloading latest version..."
if ! curl --output "$SELF" "$REMOTE_SCRIPT"; then
echo "Failed: Error while trying to curl new version!"
echo "File requested: REMOTE_SCRIPT"
exit 1
fi
echo "Done. Quitting deprecated version now."
exit 1
fi
}
go_fmt() {
go_fmt_diff=$(docker run --rm -v "$ROOT_DIR":/app -w /app golang:1.14 gofmt -l .)
if [ -z "$go_fmt_diff" ]; then
echo "Your go code looks nice."
else
echo "Dude!? Format your go code:"
echo "$go_fmt_diff"
exit 1
fi
}
java_format() {
java_format_diff=$(docker run --rm -v "$ROOT_DIR":/src openjdk:alpine sh -c "wget --quiet https://github.com/google/google-java-format/releases/download/google-java-format-1.6/google-java-format-1.6-all-deps.jar && find /src -name '*.java' | xargs java -jar google-java-format-1.6-all-deps.jar -n")
if [ -z "$java_format_diff" ]; then
echo "Your java code looks ... ok, its still java ;-)"
else
echo "Dude!? Your java code hurt my eyes!"
echo "$java_format_diff"
exit 1
fi
}
main() {
echo "Start pre-commit hook"
go_fmt
java_format
}
ROOT_DIR="$(git rev-parse --show-toplevel)"
[[ -d "${ROOT_DIR}" ]] || exit 1
self_update true
main