All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [git commit] support/scripts/graph-depends: add --flat-list option
@ 2018-04-01 20:25 Peter Korsgaard
  0 siblings, 0 replies; only message in thread
From: Peter Korsgaard @ 2018-04-01 20:25 UTC (permalink / raw)
  To: buildroot

commit: https://git.buildroot.net/buildroot/commit/?id=3146ba76331690fb693de3ff2fcebbaec43ca54e
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master

graph-depends currently spits out a graph in .dot format. However, as
part of the upcoming introduction of <pkg>-show-recursive-depends and
<pkg>-show-recursive-rdepends, we need graph-depends to be able to
display a flat list.

Signed-off-by: George Redivo <george.redivo@datacom.ind.br>
[Thomas:
 - Rebase on top of graph-depends changes
 - Do not display the package name itself in the list, only its
   dependencies (or reverse dependencies)
 - Display the result on a single line, instead of one package per
   line, in order to match what <pkg>-show-depends and
   <pkg>-show-rdepends are doing today.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
 support/scripts/graph-depends | 26 +++++++++++++++++++-------
 1 file changed, 19 insertions(+), 7 deletions(-)

diff --git a/support/scripts/graph-depends b/support/scripts/graph-depends
index 4ec0e46f7b..621e603278 100755
--- a/support/scripts/graph-depends
+++ b/support/scripts/graph-depends
@@ -248,11 +248,14 @@ done_deps = []
 
 # Print the dependency graph of a package
 def print_pkg_deps(outfile, dict_deps, dict_version, stop_list, exclude_list,
-                   arrow_dir, depth, max_depth, pkg, colors):
+                   arrow_dir, draw_graph, depth, max_depth, pkg, colors):
     if pkg in done_deps:
         return
     done_deps.append(pkg)
-    print_attrs(outfile, pkg, dict_version.get(pkg), depth, colors)
+    if draw_graph:
+        print_attrs(outfile, pkg, dict_version.get(pkg), depth, colors)
+    elif depth != 0:
+        outfile.write("%s " % pkg)
     if pkg not in dict_deps:
         return
     for p in stop_list:
@@ -276,9 +279,10 @@ def print_pkg_deps(outfile, dict_deps, dict_version, stop_list, exclude_list,
                     add = False
                     break
             if add:
-                outfile.write("%s -> %s [dir=%s]\n" % (pkg_node_name(pkg), pkg_node_name(d), arrow_dir))
+                if draw_graph:
+                    outfile.write("%s -> %s [dir=%s]\n" % (pkg_node_name(pkg), pkg_node_name(d), arrow_dir))
                 print_pkg_deps(outfile, dict_deps, dict_version, stop_list, exclude_list,
-                               arrow_dir, depth + 1, max_depth, d, colors)
+                               arrow_dir, draw_graph, depth + 1, max_depth, d, colors)
 
 
 def parse_args():
@@ -314,6 +318,8 @@ def parse_args():
                         help="Draw reverse dependencies")
     parser.add_argument("--quiet", '-q', dest="quiet", action='store_true',
                         help="Quiet")
+    parser.add_argument("--flat-list", '-f', dest="flat_list", action='store_true', default=False,
+                        help="Do not draw graph, just print a flat list")
     return parser.parse_args()
 
 
@@ -359,6 +365,8 @@ def main():
         get_depends_func = brpkgutil.get_rdepends
         arrow_dir = "back"
 
+    draw_graph = not args.flat_list
+
     # Get the colors: we need exactly three colors,
     # so no need not split more than 4
     # We'll let 'dot' validate the colors...
@@ -406,12 +414,16 @@ def main():
                                           if pkg != "all" and not pkg.startswith("root")])
 
     # Start printing the graph data
-    outfile.write("digraph G {\n")
+    if draw_graph:
+        outfile.write("digraph G {\n")
 
     print_pkg_deps(outfile, dict_deps, dict_version, stop_list, exclude_list,
-                   arrow_dir, 0, args.depth, rootpkg, colors)
+                   arrow_dir, draw_graph, 0, args.depth, rootpkg, colors)
 
-    outfile.write("}\n")
+    if draw_graph:
+        outfile.write("}\n")
+    else:
+        outfile.write("\n")
 
 
 if __name__ == "__main__":

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2018-04-01 20:25 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-01 20:25 [Buildroot] [git commit] support/scripts/graph-depends: add --flat-list option Peter Korsgaard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.