From c99916b8b22428b056f5424ae6d81fe9299a5180 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Wed, 13 Jun 2018 11:18:44 +0200 Subject: buildmaster/build-list-links.php new --- buildmaster/build-list-links.php | 123 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 buildmaster/build-list-links.php (limited to 'buildmaster/build-list-links.php') diff --git a/buildmaster/build-list-links.php b/buildmaster/build-list-links.php new file mode 100644 index 0000000..24c0bc3 --- /dev/null +++ b/buildmaster/build-list-links.php @@ -0,0 +1,123 @@ +fetch_assoc()) + $knots .= + "\"ba" . + $row["id"] . + "\" [label = \"" . + $row["arch"] . + "/" . + $row["pkgbase"] . + "\", + fontcolor = \"" . + $row["color"] . + "\"];\n"; + +$result = mysql_run_query( + "SELECT DISTINCT `d_bp`.`build_assignment` AS `dependent`," . + "`dependency_types`.`name` AS `dep_type`," . + "`i_bp`.`build_assignment` AS `depending_on`" . + " FROM `ba`" . + " JOIN `binary_packages` AS `d_bp` ON `d_bp`.`build_assignment`=`ba`.`id`" . + " JOIN `dependencies` ON `d_bp`.`id`=`dependencies`.`dependent`" . + " JOIN `dependency_types` ON `dependencies`.`dependency_type`=`dependency_types`.`id`" . + " JOIN `install_target_providers` ON `install_target_providers`.`install_target`=`dependencies`.`depending_on`" . + " JOIN `binary_packages` AS `i_bp` ON `i_bp`.`id`=`install_target_providers`.`package`" . + " JOIN `ba_copy` ON `i_bp`.`build_assignment`=`ba_copy`.`id`" . + " WHERE `dependencies`.`dependent`!=`install_target_providers`.`package`" +); + +while ($row = $result->fetch_assoc()) { + $edges .= + "\"b" . + $row["depending_on"] . + "\" -> \"b" . + $row["dependent"] . + "\" [color = \""; + switch ($row["dep_type"]) { + case "run": + $edges .= "#000000"; + break; + case "make": + $edges .= "#0000ff"; + break; + case "link": + $edges .= "#008000"; + break; + case "check": + $edges .= "#000080"; + break; + default: + $edges .= "#ff00ff"; + } + $edges .= + "#000080"; + $edges .= + "\"];\n"; +} + +$input_file = tempnam("/tmp", "build-list-links."); + +$handle = fopen($input_file,"w"); +fwrite($handle, + "digraph dependencies {\n" . + "rankdir=LR;\n" . + "fontname=dejavu;\n" . + $knots . + $edges . + "}\n" +); +fclose($handle); + +header ("Content-type: image/png"); +passthru( + "dot -Tpng -o/dev/stdout " . $input_file +); + +unlink($input_file); -- cgit v1.2.3