aboutsummaryrefslogtreecommitdiffstats
path: root/templates
diff options
context:
space:
mode:
authorJan Tuomi <jan@jantuomi.fi>2025-10-07 15:51:43 +0300
committerJan Tuomi <jan@jantuomi.fi>2025-10-07 15:51:43 +0300
commite037ecfa8cc0133a84fbed791b7658c474c3e748 (patch)
tree5305efc6c4b51caeeade79b172a1faab915a1d4e /templates
parent1b9ed1426e93c335c3ffa7836813cb109b89ee22 (diff)
Add hommabot jail
Diffstat (limited to 'templates')
-rw-r--r--templates/diddle/root_clone.sh14
-rw-r--r--templates/hommabot/etc_crontab.j210
-rw-r--r--templates/hommabot/root_hommabot_deps.sh14
-rw-r--r--templates/hommabot/root_hommabot_env.j24
-rw-r--r--templates/root_clone.sh21
5 files changed, 49 insertions, 14 deletions
diff --git a/templates/diddle/root_clone.sh b/templates/diddle/root_clone.sh
deleted file mode 100644
index a3dbdac..0000000
--- a/templates/diddle/root_clone.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-
-# Exits with 100 if the directory was changed
-
-if [ ! -f /root/diddle ]; then
- git clone https://github.com/jantuomi/diddle.git /root/diddle && exit 100
-fi
-
-cd /root/diddle
-before=$(git rev-parse HEAD)
-git fetch && git pull --ff-only --quiet
-after=$(git rev-parse HEAD)
-
-if [ "$before" != "$after" ]; then exit 100; fi
diff --git a/templates/hommabot/etc_crontab.j2 b/templates/hommabot/etc_crontab.j2
new file mode 100644
index 0000000..556d12a
--- /dev/null
+++ b/templates/hommabot/etc_crontab.j2
@@ -0,0 +1,10 @@
+# /etc/crontab - root's crontab for FreeBSD
+#
+#
+SHELL=/bin/sh
+PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
+#
+#minute hour mday month wday who command
+
+# Run hommabot every Monday at 9:00 AM
+0 9 * * 1 root /bin/sh -c "cd /root/hommabot && node index.js"
diff --git a/templates/hommabot/root_hommabot_deps.sh b/templates/hommabot/root_hommabot_deps.sh
new file mode 100644
index 0000000..25c0e56
--- /dev/null
+++ b/templates/hommabot/root_hommabot_deps.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -eux
+cd /root/hommabot
+npm ci
+
+# We need to build the better-sqlite3.node file before running the app
+if [ ! -f build/better_sqlite3.node ]; then (
+ mkdir -p build
+ cd node_modules/better-sqlite3
+ npm run build-release
+ cp build/Release/better_sqlite3.node ../../build/better_sqlite3.node
+)
+fi
diff --git a/templates/hommabot/root_hommabot_env.j2 b/templates/hommabot/root_hommabot_env.j2
new file mode 100644
index 0000000..c66c666
--- /dev/null
+++ b/templates/hommabot/root_hommabot_env.j2
@@ -0,0 +1,4 @@
+TELEGRAM_BOT_TOKEN="{{ hommabot_telegram_bot_token }}"
+SHEETS_SPREADSHEET_ID="{{ hommabot_sheets_spreadsheet_id }}"
+SHEETS_RANGE="{{ hommabot_sheets_range }}"
+G_SA_JSON_B64="{{ hommabot_g_sa_json_b64 }}"
diff --git a/templates/root_clone.sh b/templates/root_clone.sh
new file mode 100644
index 0000000..7f92c5f
--- /dev/null
+++ b/templates/root_clone.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+REPO="$1"
+TARGET="$2"
+
+set -eux
+
+# Exits with 100 if the directory was changed
+
+if [ ! -d "$TARGET" ]; then
+ git clone --depth=1 --branch main --single-branch "$REPO" "$TARGET"
+ exit 100
+fi
+
+cd "$TARGET"
+before=$(git rev-parse HEAD)
+git fetch --depth=1 --prune origin main
+git reset --hard origin/main
+after=$(git rev-parse HEAD)
+
+if [ "$before" != "$after" ]; then exit 100; fi