mirror of
https://github.com/motioneye-project/motioneyeos.git
synced 2025-07-29 06:06:32 +00:00
support/graph-depends: add option to stop on specific packages
Add a new option to graph-depends, that users can set to stop the graph on a specific (set of) package(s). This accepts any actual package name, or the 'virtual' keyword to stop on virtual packages. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Francois Perrad <fperrad@gmail.com> Reviewed-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
parent
e90e98f951
commit
5558a34e9a
@ -36,11 +36,14 @@ max_depth = 0
|
|||||||
# Whether to draw the transitive dependencies
|
# Whether to draw the transitive dependencies
|
||||||
transitive = True
|
transitive = True
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description="Graph pacakges dependencies")
|
parser = argparse.ArgumentParser(description="Graph packages dependencies")
|
||||||
parser.add_argument("--package", '-p', metavar="PACKAGE",
|
parser.add_argument("--package", '-p', metavar="PACKAGE",
|
||||||
help="Graph the dependencies of PACKAGE")
|
help="Graph the dependencies of PACKAGE")
|
||||||
parser.add_argument("--depth", '-d', metavar="DEPTH", dest="depth", type=int, default=0,
|
parser.add_argument("--depth", '-d', metavar="DEPTH", dest="depth", type=int, default=0,
|
||||||
help="Limit the dependency graph to DEPTH levels; 0 means no limit.")
|
help="Limit the dependency graph to DEPTH levels; 0 means no limit.")
|
||||||
|
parser.add_argument("--stop-on", "-s", metavar="PACKAGE", dest="stop_list", action="append",
|
||||||
|
help="Do not graph past this package (can be given multiple times)." \
|
||||||
|
+ " 'virtual' to stop on virtual packages.")
|
||||||
parser.add_argument("--colours", "-c", metavar="COLOR_LIST", dest="colours",
|
parser.add_argument("--colours", "-c", metavar="COLOR_LIST", dest="colours",
|
||||||
default="lightblue,grey,gainsboro",
|
default="lightblue,grey,gainsboro",
|
||||||
help="Comma-separated list of the three colours to use" \
|
help="Comma-separated list of the three colours to use" \
|
||||||
@ -61,6 +64,11 @@ else:
|
|||||||
|
|
||||||
max_depth = args.depth
|
max_depth = args.depth
|
||||||
|
|
||||||
|
if args.stop_list is None:
|
||||||
|
stop_list = []
|
||||||
|
else:
|
||||||
|
stop_list = args.stop_list
|
||||||
|
|
||||||
transitive = args.transitive
|
transitive = args.transitive
|
||||||
|
|
||||||
# Get the colours: we need exactly three colours,
|
# Get the colours: we need exactly three colours,
|
||||||
@ -304,6 +312,10 @@ def print_pkg_deps(depth, pkg):
|
|||||||
print_attrs(pkg)
|
print_attrs(pkg)
|
||||||
if pkg not in dict_deps:
|
if pkg not in dict_deps:
|
||||||
return
|
return
|
||||||
|
if pkg in stop_list:
|
||||||
|
return
|
||||||
|
if dict_version.get(pkg) == "virtual" and "virtual" in stop_list:
|
||||||
|
return
|
||||||
if max_depth == 0 or depth < max_depth:
|
if max_depth == 0 or depth < max_depth:
|
||||||
for d in dict_deps[pkg]:
|
for d in dict_deps[pkg]:
|
||||||
print("%s -> %s" % (pkg_node_name(pkg), pkg_node_name(d)))
|
print("%s -> %s" % (pkg_node_name(pkg), pkg_node_name(d)))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user