32 lines
1.1 KiB
Bash
32 lines
1.1 KiB
Bash
#!/bin/bash
|
|
|
|
MINISERVER="$HOME/.local/share/MiniServer"
|
|
|
|
run_update() {
|
|
local status=0 gateway=0
|
|
bash "$MINISERVER/sandbox/setup.sh" || status=1
|
|
|
|
# Hermes update asks a running gateway to finish its work and restart, but
|
|
# that signal (SIGUSR1) reaches srt, not the gateway inside its sandbox, so
|
|
# the update would wait half an hour. Stop the gateway for the update instead;
|
|
# starting it afterwards also loads new sandbox rules and dependencies.
|
|
if systemctl --user is-active --quiet hermes-gateway.service; then
|
|
gateway=1
|
|
systemctl --user stop hermes-gateway.service || status=1
|
|
fi
|
|
|
|
# The real command, not the sandboxed one in sandbox/bin: updating Hermes
|
|
# writes outside what its sandbox allows. python-olm, for Matrix, bundles a
|
|
# CMake file too old for CMake 4 unless told which policies to use.
|
|
if [ -x "$HOME/.local/bin/hermes" ]; then
|
|
echo "Updating Hermes Agent..."
|
|
CMAKE_POLICY_VERSION_MINIMUM=3.5 "$HOME/.local/bin/hermes" update < /dev/null || status=1
|
|
fi
|
|
|
|
if [ "$gateway" = 1 ]; then
|
|
echo "Starting Hermes' gateway..."
|
|
systemctl --user start hermes-gateway.service || status=1
|
|
fi
|
|
return $status
|
|
}
|