forked from ccache/ccache
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclang-format
executable file
·66 lines (57 loc) · 2.19 KB
/
clang-format
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
63
64
65
66
#!/bin/sh
#
# This script executes clang-format in the following order:
#
# 1. If environment variable CLANG_FORMAT is set, execute $CLANG_FORMAT.
# 2. Otherwise, if <ccache-top-dir>/misc/.clang-format-exe exists, execute that
# program.
# 3. Otherwise, download a statically linked clang-format executable, verify its
# integrity, place it in <ccache-top-dir>/misc/.clang-format-exe and execute
# it.
set -eu
if [ -n "${CLANG_FORMAT:-}" ]; then
exec "$CLANG_FORMAT" "$@"
fi
top_dir="$(dirname "$0")"
clang_format_exe="$top_dir/.clang-format-exe"
clang_format_version=11
clang_format_release=master-1d7ec53d
url_prefix="https://github.com/muttleyxd/clang-tools-static-binaries/releases/download/${clang_format_release}/clang-format-${clang_format_version}_"
if [ ! -x "$clang_format_exe" ]; then
case "$(uname -s | tr '[:upper:]' '[:lower:]')" in
*mingw*|*cygwin*|*msys*)
url_suffix=windows-amd64.exe
checksum=7167f201acbd8ff06a7327d14db0d8a169393384bbc42873bb8277b788cc4469
;;
*darwin*)
url_suffix=macosx-amd64
checksum=0cab857e66aa9ed9ea00eee3c94bfc91a2d72ab440327e15784852cf94b1814b
;;
*linux*)
url_suffix=linux-amd64
checksum=a9d76e3275823ea308bc2e4d2a6e3cc693f38c29d891f1d74cb0e1553e698dea
;;
*)
echo "Error: Please set CLANG_FORMAT to clang-format version $clang_format_version" >&2
exit 1
;;
esac
url="$url_prefix$url_suffix"
if command -v wget >/dev/null; then
wget -qO "$clang_format_exe.tmp" "$url"
elif command -v curl >/dev/null; then
curl -so "$clang_format_exe.tmp" -L --retry 20 "$url"
else
echo "Error: Neither wget nor curl found" >&2
exit 1
fi
if ! command -v sha256sum >/dev/null; then
echo "Warning: sha256sum not found, not verifying clang-format integrity" >&2
elif ! echo "$checksum $clang_format_exe.tmp" | sha256sum --status -c; then
echo "Error: Bad checksum of downloaded clang-format" >&2
exit 1
fi
chmod +x "$clang_format_exe.tmp"
mv "$clang_format_exe.tmp" "$clang_format_exe"
fi
exec "$clang_format_exe" "$@"