59 lines
1.8 KiB
Bash
Executable File
59 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
if [ "$(id -u)" -ne 0 ]; then
|
|
echo "run this installer as root" >&2
|
|
exit 1
|
|
fi
|
|
|
|
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)"
|
|
PHOENIX_ROOT="$(cd "$SCRIPT_DIR/.." && pwd -P)"
|
|
SYSTEMD_SOURCE="$PHOENIX_ROOT/etc/systemd/system"
|
|
SUDOERS_SOURCE="$PHOENIX_ROOT/etc/sudoers.d/phoenix-update-volumio"
|
|
LIBEXEC_DIR="/usr/local/libexec/phoenix"
|
|
|
|
required_files=(
|
|
"$SYSTEMD_SOURCE/analyzer-kiosk-volumio.service"
|
|
"$SYSTEMD_SOURCE/analyzer-web-volumio.service"
|
|
"$SYSTEMD_SOURCE/phoenix-update-volumio.service"
|
|
"$SUDOERS_SOURCE"
|
|
"$PHOENIX_ROOT/scripts/restart_phoenix_services.sh"
|
|
)
|
|
|
|
for path in "${required_files[@]}"; do
|
|
if [ ! -f "$path" ]; then
|
|
echo "required Volumio integration file missing: $path" >&2
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
if ! command -v visudo >/dev/null 2>&1; then
|
|
echo "visudo not found; refusing to install sudo policy" >&2
|
|
exit 1
|
|
fi
|
|
visudo -cf "$SUDOERS_SOURCE"
|
|
|
|
install -d -o root -g root -m 0755 "$LIBEXEC_DIR"
|
|
install -o root -g root -m 0755 \
|
|
"$PHOENIX_ROOT/scripts/restart_phoenix_services.sh" \
|
|
"$LIBEXEC_DIR/restart_phoenix_services.sh"
|
|
install -o root -g root -m 0644 \
|
|
"$SYSTEMD_SOURCE/analyzer-kiosk-volumio.service" \
|
|
/etc/systemd/system/analyzer-kiosk-volumio.service
|
|
install -o root -g root -m 0644 \
|
|
"$SYSTEMD_SOURCE/analyzer-web-volumio.service" \
|
|
/etc/systemd/system/analyzer-web-volumio.service
|
|
install -o root -g root -m 0644 \
|
|
"$SYSTEMD_SOURCE/phoenix-update-volumio.service" \
|
|
/etc/systemd/system/phoenix-update-volumio.service
|
|
install -o root -g root -m 0440 \
|
|
"$SUDOERS_SOURCE" \
|
|
/etc/sudoers.d/phoenix-update-volumio
|
|
|
|
systemctl daemon-reload
|
|
systemctl enable analyzer-web-volumio.service analyzer-kiosk-volumio.service
|
|
|
|
echo "Volumio integration installed"
|
|
echo "Existing services were not restarted"
|