Commit 3d37950e authored by Yann E. MORIN's avatar Yann E. MORIN Committed by Thomas Petazzoni
Browse files

support/graph-depends: use argparse to parse argv[]



Currently, we are using a crude, ad-hoc parsing of argv[].
This is a limiting factor to adding new options.

Use argparse instead, and introduce a single argument for now:
  --package, -p PACKAGE

In the (near) future, we'll be able to add more option arguments,
such as depth-limiting for big graphs.

Signed-off-by: default avatar"Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent 22d05901
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -495,7 +495,7 @@ $(1)-show-depends:
$(1)-graph-depends:
			@$(INSTALL) -d $(O)/graphs
			@cd "$(CONFIG_DIR)"; \
			$(TOPDIR)/support/scripts/graph-depends $(1) \
			$(TOPDIR)/support/scripts/graph-depends -p $(1) \
			|dot -T$(BR_GRAPH_OUT) -o $(O)/graphs/$$(@).$(BR_GRAPH_OUT)

$(1)-dirclean:		$$($(2)_TARGET_DIRCLEAN)
+13 −10
Original line number Diff line number Diff line
#!/usr/bin/python

# Usage (the graphviz package must be installed in your distribution)
#  ./support/scripts/graph-depends [package-name] > test.dot
#  ./support/scripts/graph-depends [-p package-name] > test.dot
#  dot -Tpdf test.dot -o test.pdf
#
# With no arguments, graph-depends will draw a complete graph of
# dependencies for the current configuration. With an argument,
# graph-depends will draw a graph of dependencies for the given
# package name.
# dependencies for the current configuration.
# If '-p <package-name>' is specified, graph-depends will draw a graph
# of dependencies for the given package name.
#
# Limitations
#
@@ -21,6 +21,7 @@

import sys
import subprocess
import argparse

# In FULL_MODE, we draw the full dependency graph for all selected
# packages
@@ -31,14 +32,16 @@ PKG_MODE = 2

mode = 0

if len(sys.argv) == 1:
parser = argparse.ArgumentParser(description="Graph pacakges dependencies")
parser.add_argument("--package", '-p', metavar="PACKAGE",
                    help="Graph the dependencies of PACKAGE")
args = parser.parse_args()

if args.package == None:
    mode = FULL_MODE
elif len(sys.argv) == 2:
    mode = PKG_MODE
    rootpkg  = sys.argv[1]
else:
    print "Usage: graph-depends [package-name]"
    sys.exit(1)
    mode = PKG_MODE
    rootpkg = args.package

allpkgs = []