Move deptree2dot to the support folder

Since deptree2dot and the perl requirement are completely optional, we
can move this tool to the support folder. This gives the user the option
of using it if they have perl installed, and means we do not have an
optional runtime dependency on perl.

Documentation for this tool has also been added to the support folder.

X-Gentoo-Bug: 600742
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=600742
This commit is contained in:
William Hubbs
2017-02-17 12:06:03 -06:00
parent 85c1930acf
commit 6f614cd3f3
6 changed files with 17 additions and 10 deletions

View File

@@ -3,9 +3,5 @@
SUBDIR= test libeinfo librc rc
ifeq (${MKTOOLS},yes)
SUBDIR+= tools
endif
MK= ../mk
include ${MK}/subdir.mk

View File

@@ -1,5 +0,0 @@
DIR= ${UPREFIX}/bin
BIN= deptree2dot
MK= ../../mk
include ${MK}/scripts.mk

View File

@@ -1,44 +0,0 @@
#!/usr/bin/perl -w
# -*- cperl -*-
# Copyright <20> 2012 Diego Elio Petten<65> <flameeyes@flameeyes.eu>
# Released under the 2-clause BSD license.
#
#Example usage:
#deptree2dot > deptree.dot
#deptree2dot | dot -Tpng -o deptree.png
my $deptree = defined($ARGV[0]) ? $ARGV[0] : "/run/openrc/deptree";
open DEPTREE, $deptree or exit 1;
print "digraph deptree {\n";
my @deptree;
while(my $line = readline(DEPTREE)) {
$line =~ /^depinfo_([0-9]+)_([a-z]+)(?:_[0-9]+)?='(.*)'\n$/;
my $index = $1;
my $prop = $2;
my $value = $3; $value =~ s/[-\.:~]/_/g;
if ( $prop eq "service" ) {
$deptree[$index] = $value;
printf "%s [shape=box];\n", $value;
} else {
my $service = $deptree[$index];
if ( $prop eq "ineed" ) {
printf "%s -> %s;\n", $service, $value;
} elsif ( $prop eq "iuse" ) {
printf "%s -> %s [color=blue];\n", $service, $value;
} elsif ( $prop eq "ibefore" ) {
printf "%s -> %s [style=dotted];\n", $service, $value;
} elsif ( $prop eq "iafter" ) {
printf "%s -> %s [style=dotted color=purple];\n", $value, $service;
} elsif ( $prop eq "iprovide" ) {
printf "%s -> %s [color=red];\n", $value, $service;
}
}
}
print "}\n";