summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authoralex <alex@pdp7.net>2023-10-24 21:15:47 +0200
committeralex <alex@pdp7.net>2023-10-24 21:15:47 +0200
commit6afd802003de473c7adc5e7e0ff860e220c70031 (patch)
tree3b175fcd473032686fddc7dc4350583d79d602a3 /scripts
parentbe3be60dd9db78206a5d85585a02bf90c249ade9 (diff)
Add soju_setup
Diffstat (limited to 'scripts')
-rw-r--r--scripts/p7s/soju.py45
-rw-r--r--scripts/pyproject.toml1
2 files changed, 46 insertions, 0 deletions
diff --git a/scripts/p7s/soju.py b/scripts/p7s/soju.py
new file mode 100644
index 00000000..1b45c70b
--- /dev/null
+++ b/scripts/p7s/soju.py
@@ -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)
diff --git a/scripts/pyproject.toml b/scripts/pyproject.toml
index 2adaf4e8..51aa351f 100644
--- a/scripts/pyproject.toml
+++ b/scripts/pyproject.toml
@@ -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'