-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathcloc.sh
executable file
·74 lines (48 loc) · 1.35 KB
/
cloc.sh
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
67
68
69
70
71
72
73
74
#!/bin/bash
set -o nounset
set -o errexit
# --docstring-as-code: https://github.com/AlDanial/cloc/issues/375
readonly CLOC_FLAGS="-quiet --hide-rate --docstring-as-code"
RunCloc() {
echo '```'
cloc ${CLOC_FLAGS} "$@" | tail -n +3
echo '```'
}
ComputeStats() {
echo "### Regular Code (Python)"
echo
RunCloc --by-file '--match-f=[.](py)$$' '--not-match-f=(cwast|_test|_tab|_gen.*)[.](py)$$' --match-d="$2" $1
echo
echo "### Table Code (Python)"
echo
RunCloc --by-file '--match-f=(cwast|_tab).*[.](py)$$' --match-d="$2" $1
echo "### Regular Code (C++)"
echo
RunCloc --by-file '--match-f=[.](cc|h)$$' '--not-match-f=(_test|_tab|_gen.*)[.](|h|cc)$$' --match-d="$2" $1
echo
echo "### Generated Files (C++)"
echo
RunCloc --by-file '--match-f=_gen.*[.](cc|h)$$' --match-d="$2" $1
}
backend() {
echo "## ISA Neutral Code"
ComputeStats BE "Base|Elf"
echo "## A32 Code"
ComputeStats BE "CpuA32|CodeGenA32"
echo "## A64 Code"
ComputeStats BE "CpuA64|CodeGenA64"
echo "## X64 Code"
ComputeStats BE "CpuX64|CodeGenX64"
}
frontend() {
ComputeStats FE ".*"
}
if [ $# = 0 ]; then
echo "ERROR: No command specified." >&2
exit 1
fi
if [ "$(type -t $1)" != "function" ]; then
echo "ERROR: unknown command '$1'." >&2
exit 1
fi
"$@"