support/scripts/graph-depends: remove global code and most global variables
authorThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sat, 31 Mar 2018 16:35:39 +0000 (18:35 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Sun, 1 Apr 2018 18:01:38 +0000 (20:01 +0200)
commitf179394621e0ac5713c40cae4c50d341cf82de30
treedecc084ff88453973132d941ac9b48448912f3b6
parent998300c5f55f61e928acfd352bc4cc24f36f8f7d
support/scripts/graph-depends: remove global code and most global variables

The graph-depends script had no main() function, and the main code was
actually spread between the function definitions, which was a real
mess.

This commit moves the global code into a main() function, which allows
to more easily follow the flow of the script. The argument parsing
code is moved into a parse_args() function.

Most of the global variables are removed, and are instead passed as
argument when appropriate. This has the side-effect that the
print_pkg_deps() function takes a lot of argument, but this is
considered better than tons of global variables.

The global variables that are removed are: max_depth, transitive,
mode, root_colour, target_colour, host_colour, outfile, dict_deps,
dict_version, stop_list, exclude_list, arrow_dir.

The root_colour/target_colour/host_colour variables are entirely
removed, and instead a single colours array is passed, and it's the
function using the colors that actually uses the different entries in
the array.

The way the print_attrs() function determines if we're display the
root node is not is changed. Instead of relying on the package name
and the mode (which requires passing the root package name, and the
mode), it relies on the depth: when the depth is 0, we're at the root
node.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
support/scripts/graph-depends