]> xn--ix-yja.es Git - alex.git/commitdiff
Add soju_setup
authoralex <alex@pdp7.net>
Tue, 24 Oct 2023 19:15:47 +0000 (21:15 +0200)
committeralex <alex@pdp7.net>
Tue, 24 Oct 2023 19:15:47 +0000 (21:15 +0200)
scripts/p7s/soju.py [new file with mode: 0644]
scripts/pyproject.toml

diff --git a/scripts/p7s/soju.py b/scripts/p7s/soju.py
new file mode 100644 (file)
index 0000000..1b45c70
--- /dev/null
@@ -0,0 +1,45 @@
+import pathlib
+import textwrap
+
+
+def setup_soju():
+    home = pathlib.Path.home()
+    config = home / ".config" / "containers" / "systemd"
+    config.mkdir(parents=True, exist_ok=True)
+    (config / "soju.container").write_text(textwrap.dedent("""
+        [Unit]
+        Description=IRC Bouncer
+
+        [Container]
+        Image=quay.io/alexpdp7/workstation:latest
+        Volume=/home/alex/.config/containers/systemd/soju_config:/etc/soju/config
+        Volume=/home/alex/.local/lib/soju:/var/lib/soju/
+        SecurityLabelDisable=true
+        Network=host
+
+        Exec=soju
+
+        [Service]
+        # Extend Timeout to allow time to pull the image
+        TimeoutStartSec=900
+
+        [Install]
+        # Start by default on boot
+        WantedBy=multi-user.target default.target
+    """).lstrip())
+
+    (config / "soju_config").write_text(textwrap.dedent("""
+        db sqlite3 /var/lib/soju/main.db
+        message-store fs /var/lib/soju/logs/
+        listen irc+insecure://0.0.0.0:6667
+    """).lstrip())
+
+    (home / ".local" / "lib" / "soju").mkdir(parents=True, exist_ok=True)
+
+    sojudb_wrapper = (home / ".local" / "bin" / "sojudb")
+    sojudb_wrapper.write_text(textwrap.dedent("""
+        #!/bin/sh
+
+        podman run -it --rm --security-opt label=disable -v ~/.config/containers/systemd/soju_config:/etc/soju/config -v ~/.local/lib/soju/:/var/lib/soju quay.io/alexpdp7/workstation:latest sojudb "$@"
+    """).lstrip())
+    sojudb_wrapper.chmod(0o755)
index 2adaf4e89230d2765fbe41f5ee11f6d90167ac5b..51aa351f0af9ded10cafdc4ce1be491a7f978162 100644 (file)
@@ -21,3 +21,4 @@ mbsync_config = 'p7s.mail:generate_config'
 db-create = 'p7s.distrobox:create'
 db-enter = 'p7s.distrobox:enter'
 nextcloud_setup = 'p7s.nextcloud:setup_nextcloud'
+soju_setup = 'p7s.soju:setup_soju'