about summary refs log tree commit diff
path: root/bundles/s6/items.py
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/s6/items.py')
-rw-r--r--bundles/s6/items.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/bundles/s6/items.py b/bundles/s6/items.py
new file mode 100644
index 0000000..2fd8370
--- /dev/null
+++ b/bundles/s6/items.py
@@ -0,0 +1,62 @@
+if node.os != "alpine":
+    raise BundleError(f"{node.name}: OS {node.os} is not supported.")
+
+from os.path import join
+
+files = {
+    "/bin/svdn":                                       {"mode": "0755"},
+    "/bin/svup":                                       {"mode": "0755"},
+    "/bin/svls":                                       {"mode": "0755"},
+    "/bin/svre":                                       {"mode": "0755"},
+    "/bin/s6-rc-recompile":                            {"mode": "0755"},
+    "/bin/s6-rc-generate":                             {"mode": "0755"},
+    "/etc/init.d/s6-rc-init":                          {"mode": "0755"},
+    "/etc/init.d/s6-rc-up":                            {"mode": "0755"},
+    "/etc/periodic/15min/s6-rc-metrics":               {"mode": "0755"},
+
+    "/etc/s6-rc/templates/service/+service-srv/run":   {"mode": "0755"},
+    "/etc/s6-rc/templates/service/+service-log/run":   {"mode": "0755"},
+    "/etc/s6-rc/services/default/contents.d/services": {
+        "content_type": "text",
+        "content": "",
+        "triggers": {
+            "svc_openrc:s6-rc-up:restart",
+        },
+    },
+    "/etc/s6-rc/services/services/type": {
+        "content_type": "text",
+        "content": "bundle",
+        "triggers": {
+            "svc_openrc:s6-rc-up:restart",
+        },
+    },
+}
+
+directories = {
+    "/etc/s6-rc/services/services/contents.d": {}
+}
+
+repo.libs.gen.add_files_recursive(
+    files,
+    join(repo.path, "bundles", "s6", "files"),
+)
+
+svc_openrc = {
+    "s6-rc-init": {
+        "enabled": True,
+        "running": True,
+        "needs": {"file:/etc/init.d/s6-rc-init"},
+    },
+    "s6-rc-up": {
+        "enabled": True,
+        "running": True,
+        "needs": {"file:/etc/init.d/s6-rc-up"},
+    },
+}
+
+
+for service, _ in node.metadata.get("services", {}).items():
+    svc_s6rc[service] = {
+        "bundle": "services",
+        "generate": "service",
+    }