From b8c9fe390dad911855bd19de77fa6d4c7578a674 Mon Sep 17 00:00:00 2001 From: gravel Date: Mon, 22 Jan 2024 09:26:02 +0000 Subject: [PATCH] Fix and automate systemd deployment --- Makefile | 9 +++++++++ etc/systemd/sessioncommunities.service | 6 +++--- etc/systemd/systemd-install.sh | 13 +++++++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) create mode 100755 etc/systemd/systemd-install.sh diff --git a/Makefile b/Makefile index 7f4a42e..c262f86 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,11 @@ sco: fetch html all: /bin/php php/update-all.php $(FLAGS) +# Refresh listing, but via systemd, and follow logs. +sysd: + /bin/systemctl start sessioncommunities.service + /bin/journalctl --follow --unit=sessioncommunities.service + # Fetch room listing. fetch: /bin/php php/fetch-servers.php $(FLAGS) @@ -95,6 +100,10 @@ test-noninteractive: clean all test-ci: FLAGS = --verbose --no-color test-ci: clean all +# Install systemd service and timer. +install-systemd: + sudo etc/systemd/systemd-install.sh + # -- Aliases -- serve: server diff --git a/etc/systemd/sessioncommunities.service b/etc/systemd/sessioncommunities.service index f728eb1..30b2d4c 100644 --- a/etc/systemd/sessioncommunities.service +++ b/etc/systemd/sessioncommunities.service @@ -1,8 +1,8 @@ # /etc/systemd/system/sessioncommunities.service [Unit] -Description=Scrape every known source for Session Communities and put the data to a NGINX accessible folder +Description=Session Communities aggregator [Service] -WorkingDirectory=/home/session/sessioncommunities.online -User=session +### User=$USER +### WorkingDirectory=$PROJECT ExecStart=/usr/bin/sh -c "/usr/bin/php php/update-all.php --verbose --archive --no-color 2>&1 | /usr/bin/tee sessioncommunities.log" diff --git a/etc/systemd/systemd-install.sh b/etc/systemd/systemd-install.sh new file mode 100755 index 0000000..deab11a --- /dev/null +++ b/etc/systemd/systemd-install.sh @@ -0,0 +1,13 @@ +#!/bin/sh +cd "$(dirname "$0")" || exit 1 +mydir="$(pwd)" +while ! [ -f ".phpenv.php" ]; do cd ..; done +project="$(pwd)" +/bin/cp "$mydir/sessioncommunities.timer" "/etc/systemd/system/" || exit 1 +/bin/sed \ + -e "/^### /s/\$USER/$USER/g" \ + -e "/^### /s,\$PROJECT,$project,g" \ + -e "s/^### //g" \ + etc/systemd/sessioncommunities.service \ + > /etc/systemd/system/sessioncommunities.service +/bin/systemctl daemon-reload