summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
author Joe Onorato <joeo@google.com> 2024-02-09 17:11:46 -0800
committer Joe Onorato <joeo@google.com> 2024-02-09 17:11:46 -0800
commit2816c97d23088417058405abbf1eeb8990050d63 (patch)
treea7b295e704c2d0a01c6eb78e0939705f614870aa /bin
parent04b63b187017a03a87b032a57e9735984aa9fb42 (diff)
Add --depth and --reverse to soongdbg deps
Test: use the flags Change-Id: If7edacae672eca974978cc211d6e385d5038bcc2
Diffstat (limited to 'bin')
-rwxr-xr-xbin/soongdbg13
1 files changed, 9 insertions, 4 deletions
diff --git a/bin/soongdbg b/bin/soongdbg
index 215d9d2b8..bfdbbde70 100755
--- a/bin/soongdbg
+++ b/bin/soongdbg
@@ -259,12 +259,13 @@ def print_nodes(args, nodes, module_formatter):
sys.stdout.write(text)
-def get_deps(nodes, root):
+def get_deps(nodes, root, maxdepth, reverse):
if root in nodes:
return
nodes.add(root)
- for dep in root.deps:
- get_deps(nodes, dep)
+ if maxdepth != 0:
+ for dep in (root.rdeps if reverse else root.deps):
+ get_deps(nodes, dep, maxdepth-1, reverse)
def new_module_formatter(args):
@@ -311,6 +312,10 @@ class DepsCommand:
def args(self, parser):
parser.add_argument("module", nargs="+",
help="Module to print dependencies of")
+ parser.add_argument("--reverse", action="store_true",
+ help="traverse reverse dependencies")
+ parser.add_argument("--depth", type=int, default=-1,
+ help="max depth of dependencies (can keep the graph size reasonable)")
print_args(parser)
def run(self, args):
@@ -323,7 +328,7 @@ class DepsCommand:
sys.stderr.write(f"error: Can't find root: {id}\n")
err = True
continue
- get_deps(nodes, root)
+ get_deps(nodes, root, args.depth, args.reverse)
if err:
sys.exit(1)
print_nodes(args, nodes, new_module_formatter(args))