aboutsummaryrefslogtreecommitdiff
path: root/files
diff options
context:
space:
mode:
authorCullum Smith <cullum@sacredheartsc.com>2024-12-15 21:55:30 -0500
committerCullum Smith <cullum@sacredheartsc.com>2024-12-15 21:55:30 -0500
commitd4ab744834c3d278041abdc4669de96d462bc9c6 (patch)
tree9824fb23fd9d64d5d7b141d759554eabd296431b /files
parent3229c913f4191bfaf2619c15139310f2597cd3e0 (diff)
downloadinfrastructure-d4ab744834c3d278041abdc4669de96d462bc9c6.tar.gz
got invidious working
Diffstat (limited to 'files')
-rw-r--r--files/etc/cron.d/invidious.invidious_server3
-rw-r--r--files/usr/local/etc/rc.d/inv_sig_helper.invidious_server42
-rw-r--r--files/usr/local/etc/rc.d/invidious.invidious_server2
-rw-r--r--files/usr/local/libexec/invidious-sighelper-update.invidious_server48
-rw-r--r--files/usr/local/libexec/invidious-update.invidious_server4
5 files changed, 95 insertions, 4 deletions
diff --git a/files/etc/cron.d/invidious.invidious_server b/files/etc/cron.d/invidious.invidious_server
index 89fa336..7e4da0b 100644
--- a/files/etc/cron.d/invidious.invidious_server
+++ b/files/etc/cron.d/invidious.invidious_server
@@ -1,2 +1,3 @@
MAILTO=root
-0 3 * * * root /usr/local/libexec/invidious-update -q ${invidious_local_username} ${invidious_repo_dir}
+0 3 * * * root /usr/local/libexec/invidious-update -q ${invidious_local_username} ${invidious_repo_dir}
+30 3 * * * root /usr/local/libexec/invidious-sighelper-update -q ${invidious_local_username} ${invidious_sighelper_repo_dir}
diff --git a/files/usr/local/etc/rc.d/inv_sig_helper.invidious_server b/files/usr/local/etc/rc.d/inv_sig_helper.invidious_server
new file mode 100644
index 0000000..5d46919
--- /dev/null
+++ b/files/usr/local/etc/rc.d/inv_sig_helper.invidious_server
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+# PROVIDE: inv_sig_helper
+# REQUIRE: NETWORKING
+# KEYWORD: shutdown
+
+. /etc/rc.subr
+
+name=inv_sig_helper
+rcvar=inv_sig_helper_enable
+
+load_rc_config "$name"
+
+: ${inv_sig_helper_enable:='NO'}
+: ${inv_sig_helper_dir:='/usr/local/invidious/inv_sig_helper.git'}
+: ${inv_sig_helper_user='www'}
+: ${inv_sig_helper_syslog_priority:='info'}
+: ${inv_sig_helper_syslog_facility:='daemon'}
+: ${inv_sig_helper_socket:='/var/run/invidious/inv_sig_helper.sock'}
+
+inv_sig_helper_syslog_tag=inv_sig_helper
+
+inv_sig_helper_chdir=$inv_sig_helper_dir
+pidfile=/var/run/invidious/inv_sig_helper.pid
+command=/usr/sbin/daemon
+
+command_args="-f \
+-s ${inv_sig_helper_syslog_priority} \
+-l ${inv_sig_helper_syslog_facility} \
+-T ${inv_sig_helper_syslog_tag} \
+-p ${pidfile} \
+-t inv_sig_helper \
+${inv_sig_helper_dir}/target/release/inv_sig_helper_rust ${inv_sig_helper_socket}"
+
+procname="${inv_sig_helper_dir}/target/release/inv_sig_helper_rust"
+start_precmd=inv_sig_helper_prestart
+
+inv_sig_helper_prestart(){
+ install -d -m 0755 -o ${inv_sig_helper_user} /var/run/invidious
+}
+
+run_rc_command "$1"
diff --git a/files/usr/local/etc/rc.d/invidious.invidious_server b/files/usr/local/etc/rc.d/invidious.invidious_server
index 44acbad..720c437 100644
--- a/files/usr/local/etc/rc.d/invidious.invidious_server
+++ b/files/usr/local/etc/rc.d/invidious.invidious_server
@@ -1,7 +1,7 @@
#!/bin/sh
# PROVIDE: invidious
-# REQUIRE: NETWORKING
+# REQUIRE: NETWORKING inv_sig_helper
# KEYWORD: shutdown
. /etc/rc.subr
diff --git a/files/usr/local/libexec/invidious-sighelper-update.invidious_server b/files/usr/local/libexec/invidious-sighelper-update.invidious_server
new file mode 100644
index 0000000..0aacbb1
--- /dev/null
+++ b/files/usr/local/libexec/invidious-sighelper-update.invidious_server
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+set -eu -o pipefail
+
+prog=$(basename "$(readlink -f "$0")")
+usage="${prog} [-q] INVIDIOUS_USER SIGHELPER_SRCDIR"
+
+die() {
+ printf '%s: %s\n' "$prog" "$*" 1>&2
+ exit 1
+}
+
+usage(){
+ printf 'usage: %s\n' "$usage" 1>&2
+ exit 2
+}
+
+as_invidious(){
+ su -m "$invidious_user" -c "HOME=$(dirname "$sighelper_dir") ${@}"
+}
+
+while getopts hq opt; do
+ case $opt in
+ h) usage ;;
+ q) exec 1>/dev/null ;;
+ esac
+done
+shift $((OPTIND - 1))
+
+[ $# -eq 2 ] || usage
+
+invidious_user=$1
+sighelper_dir=$2
+
+cd "$sighelper_dir"
+
+as_invidious 'git fetch'
+local_rev=$(as_invidious 'git rev-parse HEAD')
+upstream_rev=$(as_invidious 'git rev-parse "@{u}"')
+
+if [ "$local_rev" != "$upstream_rev" ]; then
+ echo "updating inv_sig_helper to rev ${upstream_rev}"
+ as_invidious 'git pull --ff-only && cargo build --release'
+else
+ echo "inv_sig_helper already up to date at rev ${local_rev}"
+fi
+
+service inv_sig_helper status 2>/dev/null && service inv_sig_helper restart
diff --git a/files/usr/local/libexec/invidious-update.invidious_server b/files/usr/local/libexec/invidious-update.invidious_server
index b89b4bf..bbc5e72 100644
--- a/files/usr/local/libexec/invidious-update.invidious_server
+++ b/files/usr/local/libexec/invidious-update.invidious_server
@@ -34,7 +34,7 @@ invidious_dir=$2
cd "$invidious_dir"
-su -m "$invidious_user" -c 'git fetch'
+as_invidious 'git fetch'
local_rev=$(as_invidious 'git rev-parse HEAD')
upstream_rev=$(as_invidious 'git rev-parse "@{u}"')
@@ -45,4 +45,4 @@ else
echo "invidious already up to date at rev ${local_rev}"
fi
-service invidious restart
+service invidious status 2>/dev/null && service invidious restart