...
1digraph {
2 input [label="v1.Image", shape=box];
3 output [label="v1.Image", shape=box];
4
5 ordering = "out";
6
7 subgraph cluster_source {
8 label = "Sources";
9 "remotesource" [label="remote"];
10 "tarballsource" [label="tarball"];
11 "randomsource" [label="random"];
12 "layoutsource" [label="layout"];
13 "daemonsource" [label="daemon"];
14 }
15
16 subgraph cluster_mutate {
17 label = "mutate";
18 "mutateconfig" [label="Config"];
19 "mutatetime" [label="Time"];
20 "mutatemediatype" [label="MediaType"];
21 "mutateappend" [label="Append"];
22 "mutaterebase" [label="Rebase"];
23 }
24
25 subgraph cluster_sinks {
26 label = "Sinks";
27 labelloc = "b";
28
29 "remotesink" [label="remote"];
30 "tarballsink" [label="tarball"];
31 "legacy/tarballsink" [label="legacy/tarball"];
32 "layoutsink" [label="layout"];
33 "daemonsink" [label="daemon"];
34 }
35
36 "randomsource" -> input;
37 "layoutsource" -> input;
38 "daemonsource" -> input;
39 "tarballsource" -> input;
40 "remotesource" -> input;
41
42 input -> "mutateconfig";
43 input -> "mutatetime";
44 input -> "mutatemediatype";
45 input -> "mutateappend";
46 input -> "mutaterebase";
47
48 "mutateconfig" -> output;
49 "mutatetime" -> output;
50 "mutatemediatype" -> output;
51 "mutateappend" -> output;
52 "mutaterebase" -> output;
53
54 output -> "legacy/tarballsink";
55 output -> "layoutsink";
56 output -> "daemonsink";
57 output -> "tarballsink";
58 output -> "remotesink";
59}
View as plain text