summaryrefslogtreecommitdiff
path: root/buildmaster/todos.php
diff options
context:
space:
mode:
Diffstat (limited to 'buildmaster/todos.php')
-rw-r--r--buildmaster/todos.php97
1 files changed, 97 insertions, 0 deletions
diff --git a/buildmaster/todos.php b/buildmaster/todos.php
new file mode 100644
index 0000000..bf77f08
--- /dev/null
+++ b/buildmaster/todos.php
@@ -0,0 +1,97 @@
+<?php
+require_once "../init.php";
+
+include BASE . "/lib/helper.php";
+include BASE . "/lib/mysql.php";
+
+$result = mysql_run_query(
+ "SELECT DISTINCT " .
+ "`todos`.`id`," .
+ "`todos`.`file`," .
+ "`todos`.`line`," .
+ "`todos`.`description` " .
+ "FROM `todos`;"
+);
+
+if (isset($_GET["graph"])) {
+
+ if ($result -> num_rows > 0) {
+
+ while ($row = $result->fetch_assoc())
+ $knot_rows[$row["id"]] =
+ $row["file"]. " (line ".$row["line"].") #".$row["id"].":\\n".
+ str_replace("\"","\\\"",$row["description"]);
+
+ $knots="";
+ foreach ($knot_rows as $knot)
+ $knots=$knots . "\"" . $knot . "\";\n";
+
+ }
+
+ $result = mysql_run_query(
+ "SELECT DISTINCT " .
+ "`todo_links`.`dependent`," .
+ "`todo_links`.`depending_on` " .
+ "FROM `todo_links`;"
+ );
+
+ if ($result -> num_rows > 0) {
+ $count = 0;
+ while ($row = $result->fetch_assoc()) {
+ $link_rows[$count]["dependent"] =
+ $knot_rows[$row["dependent"]];
+ $link_rows[$count]["depending_on"] =
+ $knot_rows[$row["depending_on"]];
+ $count++;
+ }
+
+ $edges="";
+ foreach ($link_rows as $link)
+ $edges=$edges . "\"" . $link["depending_on"] . "\" -> \"" . $link["dependent"] . "\";\n";
+ }
+
+ header ("Content-type: image/png");
+ passthru(
+ "echo \"" . base64_encode(
+ "digraph dependencies {\n" .
+ "rankdir=LR;\n" .
+ "fontname=dejavu;\n" .
+ $knots .
+ $edges .
+ "}\n"
+ ) . "\" | " .
+ "base64 -d | " .
+ "timeout 30 dot -Tpng -o/dev/stdout /dev/stdin"
+ );
+
+} else { // isset($_GET["graph"])
+
+ if ($result -> num_rows > 0) {
+
+ print "<html>\n";
+ print "<head>\n";
+ print "<title>Todos in the build scripts</title>\n";
+ print "</head>\n";
+ print "<body>\n";
+ show_warning_on_offline_slave();
+
+ while ($row = $result->fetch_assoc()) {
+ print "<a href=\"#TODO" . $row["id"] . "\" name=\"TODO" . $row["id"] ."\">TODO #" . $row["id"] . "</a>";
+ print " - ";
+ print "<a href=\"";
+ print git_url("builder","tree","master",$row["file"],$row["line"]);
+ print "\">" . $row["file"] . "(line " . $row["line"] . ")</a>";
+ print ":<br>\n";
+ print str_replace("\\n","<br>\n",$row["description"]);
+ print "<br>\n";
+ print "<br>\n";
+ }
+
+ print "</body>\n";
+ print "</html>\n";
+
+ }
+
+}
+
+?>