3 # Skript fuer die Suche nach unbenutzten Shell- oder Lua-Funktionen.
4 # Die Ausgabe sollte jedcoh mit Vorsicht verwendet werden: "grep -r FUNC_NAME"
5 # ist ueblicherweise ein guter Einstieg in die Detail-Analyse.
10 BASE_DIR=$(cd
"$(dirname "$0
")/../packages"; pwd)
15 find on-*/files/usr/lib/
lua -type f
22 grep -rl
"GUARD_TRAPS"
29 get_lua_files |
while read fname;
do grep
"^[ \t]*function[ \t]*" "$fname" ||
true; done \
30 | sed
's/^[ \t]*function[ \t]*//' \
31 | sed
's/^\([a-zA-Z0-9_]\+\).*$/\1/' \
32 | grep -v
"[^a-zA-Z0-9_]" \
39 get_shell_files |
while read fname;
do grep
"^[a-zA-Z0-9_]\+[ \t]*(" "$fname" ||
true; done \
40 | sed
's/^\([a-zA-Z0-9_]\+\).*$/\1/' \
41 | grep -v
"[^a-zA-Z0-9_]" \
46 get_lua_func_calls() {
49 # normaler lua-Funktionsaufruf
50 grep
"[^a-zA-Z0-9_]$funcname[ \t]*(" "$fname" ||
true
51 # Funktion als luci-Funktion fuer eine Web-Seite: 'call("foo")'
52 grep
"call(\"$funcname\")" "$fname" ||
true
56 get_shell_func_calls() {
59 # shell-Funktionsaufruf
61 grep -E
"^(.*[^a-zA-Z0-9_]|)$funcname([^a-zA-Z0-9_].*|)$" "$fname" || true
62 ) | grep -vE
"(trap|$funcname\()" | grep -v
"^[ \t]*#" ||
true
66 check_lua_function_in_use() {
69 local count=$(get_lua_files |
while read fname;
do get_lua_func_calls
"$fname" "$funcname"; done | wc -l)
70 # mehr als ein Vorkommen (inkl. der Definition der Funktion)? -> ok
71 [
"$count" -gt 1 ] &&
return 0
76 check_shell_function_in_use() {
79 # shell-Funktionsaufrufe duerfen in shell- und in lua-Datei auftauchen
80 local count=$( (get_shell_files; get_lua_files) |
while read fname;
do get_shell_func_calls
"$fname" "$funcname"; done | wc -l)
81 # mindestens ein Vorkommen? -> ok
82 [
"$count" -gt 0 ] &&
return 0
95 echo
"**************** eventuell unbenutzte lua-Funktionen *********************"
96 get_lua_funcs |
while read funcname;
do
97 check_lua_function_in_use
"$funcname" || echo
"$funcname"
101 echo
"*************** eventuell unbenutzte shell-Funktionen ********************"
102 get_shell_funcs |
while read funcname;
do
103 check_shell_function_in_use
"$funcname" || echo
"$funcname"
110 get_shell_funcs | sort
116 get_shell_files | sort
119 echo
"Syntax: $(basename "$0
") { check | lua-check | shell-check | lua-funcs | shell-funcs | lua-files | shell-files | help }"