about summary refs log tree commit diff
path: root/third_party/nix/src/nix-store/dotgraph.cc
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/nix/src/nix-store/dotgraph.cc')
-rw-r--r--third_party/nix/src/nix-store/dotgraph.cc100
1 files changed, 41 insertions, 59 deletions
diff --git a/third_party/nix/src/nix-store/dotgraph.cc b/third_party/nix/src/nix-store/dotgraph.cc
index abdfa5e58f..daec3da311 100644
--- a/third_party/nix/src/nix-store/dotgraph.cc
+++ b/third_party/nix/src/nix-store/dotgraph.cc
@@ -1,56 +1,41 @@
 #include "dotgraph.hh"
-#include "util.hh"
-#include "store-api.hh"
-
 #include <iostream>
-
+#include "store-api.hh"
+#include "util.hh"
 
 using std::cout;
 
 namespace nix {
 
+static string dotQuote(const string& s) { return "\"" + s + "\""; }
 
-static string dotQuote(const string & s)
-{
-    return "\"" + s + "\"";
+static string nextColour() {
+  static int n = 0;
+  static string colours[] = {"black", "red",     "green",
+                             "blue",  "magenta", "burlywood"};
+  return colours[n++ % (sizeof(colours) / sizeof(string))];
 }
 
-
-static string nextColour()
-{
-    static int n = 0;
-    static string colours[] =
-        { "black", "red", "green", "blue"
-        , "magenta", "burlywood" };
-    return colours[n++ % (sizeof(colours) / sizeof(string))];
+static string makeEdge(const string& src, const string& dst) {
+  format f = format("%1% -> %2% [color = %3%];\n") % dotQuote(src) %
+             dotQuote(dst) % dotQuote(nextColour());
+  return f.str();
 }
 
-
-static string makeEdge(const string & src, const string & dst)
-{
-    format f = format("%1% -> %2% [color = %3%];\n")
-        % dotQuote(src) % dotQuote(dst) % dotQuote(nextColour());
-    return f.str();
-}
-
-
-static string makeNode(const string & id, const string & label,
-    const string & colour)
-{
-    format f = format("%1% [label = %2%, shape = box, "
-        "style = filled, fillcolor = %3%];\n")
-        % dotQuote(id) % dotQuote(label) % dotQuote(colour);
-    return f.str();
+static string makeNode(const string& id, const string& label,
+                       const string& colour) {
+  format f = format(
+                 "%1% [label = %2%, shape = box, "
+                 "style = filled, fillcolor = %3%];\n") %
+             dotQuote(id) % dotQuote(label) % dotQuote(colour);
+  return f.str();
 }
 
-
-static string symbolicName(const string & path)
-{
-    string p = baseNameOf(path);
-    return string(p, p.find('-') + 1);
+static string symbolicName(const string& path) {
+  string p = baseNameOf(path);
+  return string(p, p.find('-') + 1);
 }
 
-
 #if 0
 string pathLabel(const Path & nePath, const string & elemPath)
 {
@@ -92,29 +77,27 @@ void printClosure(const Path & nePath, const StoreExpr & fs)
 }
 #endif
 
+void printDotGraph(ref<Store> store, const PathSet& roots) {
+  PathSet workList(roots);
+  PathSet doneSet;
 
-void printDotGraph(ref<Store> store, const PathSet & roots)
-{
-    PathSet workList(roots);
-    PathSet doneSet;
+  cout << "digraph G {\n";
 
-    cout << "digraph G {\n";
+  while (!workList.empty()) {
+    Path path = *(workList.begin());
+    workList.erase(path);
 
-    while (!workList.empty()) {
-        Path path = *(workList.begin());
-        workList.erase(path);
+    if (doneSet.find(path) != doneSet.end()) continue;
+    doneSet.insert(path);
 
-        if (doneSet.find(path) != doneSet.end()) continue;
-        doneSet.insert(path);
+    cout << makeNode(path, symbolicName(path), "#ff0000");
 
-        cout << makeNode(path, symbolicName(path), "#ff0000");
-
-        for (auto & p : store->queryPathInfo(path)->references) {
-            if (p != path) {
-                workList.insert(p);
-                cout << makeEdge(p, path);
-            }
-        }
+    for (auto& p : store->queryPathInfo(path)->references) {
+      if (p != path) {
+        workList.insert(p);
+        cout << makeEdge(p, path);
+      }
+    }
 
 #if 0
         StoreExpr ne = storeExprFromPath(path);
@@ -146,10 +129,9 @@ void printDotGraph(ref<Store> store, const PathSet & roots)
 
         cout << makeNode(path, label, colour);
 #endif
-    }
+  }
 
-    cout << "}\n";
+  cout << "}\n";
 }
 
-
-}
+}  // namespace nix