Show only matching caller modules
authorSiraaj Khandkar <siraaj@khandkar.net>
Wed, 3 Mar 2021 15:46:26 +0000 (10:46 -0500)
committerSiraaj Khandkar <siraaj@khandkar.net>
Wed, 3 Mar 2021 15:46:26 +0000 (10:46 -0500)
home/bin/erlcode-find-calls-to-module

index a3a8685..cf663b2 100755 (executable)
@@ -19,9 +19,14 @@ find $dirs -type f -name '*.erl' -exec grep -Hn "\<$target_module\>:" '{}' \; \
         sub("\\(.*$", "", called_function)
 
         if (called_function ~ /^[a-z][a-zA-Z_0-9]+$/) {
+            # Gather full API of the target_module
             Calls[called_function]++
-            Calls_from[caller_module_file, called_function]++
-            Caller_modules[caller_module_file]++
+
+            # Gather target call sites
+            if (called_function ~ target_fun_regex) {
+                Calls_from[caller_module_file, called_function]++
+                Caller_modules[caller_module_file]++
+            }
         } else {
             printf \
                 "[WARN] skipped an invalid erlang function name. File: \"%s\", function: \"%s\", original line: \"%s\"\n", \
@@ -36,7 +41,7 @@ find $dirs -type f -name '*.erl' -exec grep -Hn "\<$target_module\>:" '{}' \; \
             print caller_module_file;
             for (cf in Calls_from) {
                 split(cf, call, SUBSEP);
-                if (call[1] == caller_module_file && call[2] ~ target_fun_regex)
+                if (call[1] == caller_module_file)
                     printf "%s%s\n", indent, call[2] | "sort";
             }
             close("sort")
This page took 0.034837 seconds and 4 git commands to generate.