summaryrefslogtreecommitdiff
path: root/modules/nixos
diff options
context:
space:
mode:
authorLinnnus <[email protected]>2025-01-29 10:33:21 +0100
committerLinnnus <[email protected]>2025-01-29 10:33:21 +0100
commit827c6802fc8947ca063d969f6356be75f28e1040 (patch)
treef5c6d106189a127b2e9452a798332a8efd04a958 /modules/nixos
parentfb4230875a77fc4b0a893f664a9431ab75d00e08 (diff)
on-demand-minecraft: Add DOT documentation
Diffstat (limited to 'modules/nixos')
-rw-r--r--modules/nixos/on-demand-minecraft/systemd-units.dot26
-rw-r--r--modules/nixos/on-demand-minecraft/systemd-units.svg116
2 files changed, 142 insertions, 0 deletions
diff --git a/modules/nixos/on-demand-minecraft/systemd-units.dot b/modules/nixos/on-demand-minecraft/systemd-units.dot
new file mode 100644
index 0000000..d208cc0
--- /dev/null
+++ b/modules/nixos/on-demand-minecraft/systemd-units.dot
@@ -0,0 +1,26 @@
+// This file documents the interactions of the systemd units defined in `default.nix`.
+// It exists only to aid readers of the Nix code.
+// Make sure to keep the SVG file up to date by running `dot -Tsvg systemd-units.dot >systemd-units.svg`.
+
+digraph systemd_units {
+ label = "Systemd unit interactions";
+ labelloc = "t";
+
+ subgraph cluster_start {
+ label = "Starting up";
+
+ "minecraft-listen.socket"->"minecraft-listen.service" [color="green", label="Triggers the proxifier upon connection"];
+ "minecraft-listen.service"->"minecraft-hook.service" [color="green", label="Runs"];
+ "minecraft-hook.service"->"minecraft-server.service" [color="green", label="Starts"];
+ }
+
+ subgraph cluster_stop {
+ label = "Shutting down";
+
+ "minecraft-hook.service"->"minecraft-stop.timer" [color="green", label="Starts"];
+ "minecraft-stop.timer"->"minecraft-stop.service" [color="green", label="Runs every X seconds"];
+ "minecraft-stop.service"->"minecraft-server.service" [color="red", label="Stops if conditions are met"];
+ "minecraft-stop.service"->"minecraft-stop.timer" [color="red", label="Stops if conditions are met"];
+ "minecraft-stop.service"->"minecraft-hook.service" [color="red", label="Stops if conditions are met"];
+ }
+}
diff --git a/modules/nixos/on-demand-minecraft/systemd-units.svg b/modules/nixos/on-demand-minecraft/systemd-units.svg
new file mode 100644
index 0000000..612c8f5
--- /dev/null
+++ b/modules/nixos/on-demand-minecraft/systemd-units.svg
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 12.2.0 (0)
+ -->
+<!-- Title: systemd_units Pages: 1 -->
+<svg width="797pt" height="418pt"
+ viewBox="0.00 0.00 797.00 417.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 413.5)">
+<title>systemd_units</title>
+<polygon fill="white" stroke="none" points="-4,4 -4,-413.5 793,-413.5 793,4 -4,4"/>
+<text text-anchor="middle" x="394.5" y="-392.2" font-family="Times,serif" font-size="14.00">Systemd unit interactions</text>
+<g id="clust1" class="cluster">
+<title>cluster_start</title>
+<polygon fill="none" stroke="black" points="8,-8 8,-376.25 308,-376.25 308,-8 8,-8"/>
+<text text-anchor="middle" x="158" y="-358.95" font-family="Times,serif" font-size="14.00">Starting up</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster_stop</title>
+<polygon fill="none" stroke="black" points="384,-97.25 384,-263.75 781,-263.75 781,-97.25 384,-97.25"/>
+<text text-anchor="middle" x="582.5" y="-246.45" font-family="Times,serif" font-size="14.00">Shutting down</text>
+</g>
+<!-- minecraft&#45;listen.socket -->
+<g id="node1" class="node">
+<title>minecraft&#45;listen.socket</title>
+<ellipse fill="none" stroke="black" cx="138" cy="-325" rx="121.71" ry="18"/>
+<text text-anchor="middle" x="138" y="-320.32" font-family="Times,serif" font-size="14.00">minecraft&#45;listen.socket</text>
+</g>
+<!-- minecraft&#45;listen.service -->
+<g id="node2" class="node">
+<title>minecraft&#45;listen.service</title>
+<ellipse fill="none" stroke="black" cx="141" cy="-212.5" rx="125.39" ry="18"/>
+<text text-anchor="middle" x="141" y="-207.82" font-family="Times,serif" font-size="14.00">minecraft&#45;listen.service</text>
+</g>
+<!-- minecraft&#45;listen.socket&#45;&gt;minecraft&#45;listen.service -->
+<g id="edge1" class="edge">
+<title>minecraft&#45;listen.socket&#45;&gt;minecraft&#45;listen.service</title>
+<path fill="none" stroke="green" d="M138.47,-306.73C138.94,-289.46 139.67,-262.59 140.22,-242.12"/>
+<polygon fill="green" stroke="green" points="143.72,-242.25 140.49,-232.16 136.72,-242.06 143.72,-242.25"/>
+<text text-anchor="middle" x="272.16" y="-275.7" font-family="Times,serif" font-size="14.00">Triggers the proxifier upon connection</text>
+</g>
+<!-- minecraft&#45;hook.service -->
+<g id="node3" class="node">
+<title>minecraft&#45;hook.service</title>
+<ellipse fill="none" stroke="black" cx="141" cy="-123.25" rx="122.76" ry="18"/>
+<text text-anchor="middle" x="141" y="-118.58" font-family="Times,serif" font-size="14.00">minecraft&#45;hook.service</text>
+</g>
+<!-- minecraft&#45;listen.service&#45;&gt;minecraft&#45;hook.service -->
+<g id="edge2" class="edge">
+<title>minecraft&#45;listen.service&#45;&gt;minecraft&#45;hook.service</title>
+<path fill="none" stroke="green" d="M141,-194.26C141,-182.43 141,-166.45 141,-152.75"/>
+<polygon fill="green" stroke="green" points="144.5,-152.97 141,-142.97 137.5,-152.97 144.5,-152.97"/>
+<text text-anchor="middle" x="158.25" y="-163.2" font-family="Times,serif" font-size="14.00">Runs</text>
+</g>
+<!-- minecraft&#45;server.service -->
+<g id="node4" class="node">
+<title>minecraft&#45;server.service</title>
+<ellipse fill="none" stroke="black" cx="158" cy="-34" rx="129.07" ry="18"/>
+<text text-anchor="middle" x="158" y="-29.32" font-family="Times,serif" font-size="14.00">minecraft&#45;server.service</text>
+</g>
+<!-- minecraft&#45;hook.service&#45;&gt;minecraft&#45;server.service -->
+<g id="edge3" class="edge">
+<title>minecraft&#45;hook.service&#45;&gt;minecraft&#45;server.service</title>
+<path fill="none" stroke="green" d="M144.36,-105.01C146.66,-93.18 149.78,-77.2 152.45,-63.5"/>
+<polygon fill="green" stroke="green" points="155.88,-64.17 154.36,-53.69 149.01,-62.83 155.88,-64.17"/>
+<text text-anchor="middle" x="171.65" y="-73.95" font-family="Times,serif" font-size="14.00">Starts</text>
+</g>
+<!-- minecraft&#45;stop.timer -->
+<g id="node5" class="node">
+<title>minecraft&#45;stop.timer</title>
+<ellipse fill="none" stroke="black" cx="503" cy="-212.5" rx="111.18" ry="18"/>
+<text text-anchor="middle" x="503" y="-207.82" font-family="Times,serif" font-size="14.00">minecraft&#45;stop.timer</text>
+</g>
+<!-- minecraft&#45;hook.service&#45;&gt;minecraft&#45;stop.timer -->
+<g id="edge4" class="edge">
+<title>minecraft&#45;hook.service&#45;&gt;minecraft&#45;stop.timer</title>
+<path fill="none" stroke="green" d="M202.84,-139.16C266.41,-154.48 365.26,-178.3 431.98,-194.38"/>
+<polygon fill="green" stroke="green" points="430.8,-197.7 441.35,-196.64 432.44,-190.89 430.8,-197.7"/>
+<text text-anchor="middle" x="375.05" y="-163.2" font-family="Times,serif" font-size="14.00">Starts</text>
+</g>
+<!-- minecraft&#45;stop.service -->
+<g id="node6" class="node">
+<title>minecraft&#45;stop.service</title>
+<ellipse fill="none" stroke="black" cx="587" cy="-123.25" rx="120.13" ry="18"/>
+<text text-anchor="middle" x="587" y="-118.58" font-family="Times,serif" font-size="14.00">minecraft&#45;stop.service</text>
+</g>
+<!-- minecraft&#45;stop.timer&#45;&gt;minecraft&#45;stop.service -->
+<g id="edge5" class="edge">
+<title>minecraft&#45;stop.timer&#45;&gt;minecraft&#45;stop.service</title>
+<path fill="none" stroke="green" d="M440.71,-197.22C416.42,-188.69 397.36,-176.18 411.25,-159.25 420.39,-148.11 445.94,-140.44 474.83,-135.2"/>
+<polygon fill="green" stroke="green" points="475.26,-138.68 484.54,-133.56 474.09,-131.78 475.26,-138.68"/>
+<text text-anchor="middle" x="488.12" y="-163.2" font-family="Times,serif" font-size="14.00">Runs every X seconds</text>
+</g>
+<!-- minecraft&#45;stop.service&#45;&gt;minecraft&#45;hook.service -->
+<g id="edge8" class="edge">
+<title>minecraft&#45;stop.service&#45;&gt;minecraft&#45;hook.service</title>
+<path fill="none" stroke="red" d="M466.66,-123.25C407.56,-123.25 336.16,-123.25 275.29,-123.25"/>
+<polygon fill="red" stroke="red" points="275.57,-119.75 265.57,-123.25 275.57,-126.75 275.57,-119.75"/>
+<text text-anchor="middle" x="365.32" y="-130.2" font-family="Times,serif" font-size="14.00">Stops if conditions are met</text>
+</g>
+<!-- minecraft&#45;stop.service&#45;&gt;minecraft&#45;server.service -->
+<g id="edge6" class="edge">
+<title>minecraft&#45;stop.service&#45;&gt;minecraft&#45;server.service</title>
+<path fill="none" stroke="red" d="M517.6,-108.13C441.84,-92.73 320.62,-68.07 240.16,-51.71"/>
+<polygon fill="red" stroke="red" points="241.07,-48.32 230.57,-49.76 239.67,-55.18 241.07,-48.32"/>
+<text text-anchor="middle" x="503.92" y="-73.95" font-family="Times,serif" font-size="14.00">Stops if conditions are met</text>
+</g>
+<!-- minecraft&#45;stop.service&#45;&gt;minecraft&#45;stop.timer -->
+<g id="edge7" class="edge">
+<title>minecraft&#45;stop.service&#45;&gt;minecraft&#45;stop.timer</title>
+<path fill="none" stroke="red" d="M582.9,-141.34C579.56,-152.38 573.9,-166.5 565,-176.5 560.84,-181.17 555.9,-185.37 550.65,-189.09"/>
+<polygon fill="red" stroke="red" points="548.79,-186.12 542.25,-194.46 552.56,-192.02 548.79,-186.12"/>
+<text text-anchor="middle" x="668.85" y="-163.2" font-family="Times,serif" font-size="14.00">Stops if conditions are met</text>
+</g>
+</g>
+</svg>