36 lines
1.4 KiB
Bash
Executable File
36 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROON_APP_DIR="/Roon/app"
|
|
ROON_INSTALLED="${ROON_APP_DIR}/.installed"
|
|
ROON_DOWNLOAD_URL="${ROON_DOWNLOAD_URL:-https://download.roonlabs.net/builds/RoonServer_linuxx64.tar.bz2}"
|
|
|
|
# Download and install RoonServer on first run
|
|
if [ ! -f "$ROON_INSTALLED" ]; then
|
|
echo "RoonServer not found — downloading..."
|
|
mkdir -p "$ROON_APP_DIR"
|
|
curl -fL --progress-bar -o /tmp/RoonServer.tar.bz2 "$ROON_DOWNLOAD_URL"
|
|
echo "Extracting..."
|
|
tar xjf /tmp/RoonServer.tar.bz2 -C "$ROON_APP_DIR"
|
|
rm -f /tmp/RoonServer.tar.bz2
|
|
|
|
# libharfbuzz.so links against libfreetype.so.6 but bundled lib has no soname suffix
|
|
ln -sf "${ROON_APP_DIR}/RoonServer/Appliance/libfreetype.so" \
|
|
"${ROON_APP_DIR}/RoonServer/Appliance/libfreetype.so.6"
|
|
|
|
# Record the installed Roon version from the tarball's VERSION file
|
|
if [ -f "${ROON_APP_DIR}/RoonServer/VERSION" ]; then
|
|
cp "${ROON_APP_DIR}/RoonServer/VERSION" "$ROON_INSTALLED"
|
|
else
|
|
echo "unknown" > "$ROON_INSTALLED"
|
|
fi
|
|
echo "RoonServer installed successfully."
|
|
fi
|
|
|
|
# Log versions at startup
|
|
echo "Image: $(cat /etc/roon-image-version 2>/dev/null || echo 'unknown')"
|
|
echo "Roon: $(sed -n '2p' "$ROON_INSTALLED" 2>/dev/null || echo 'unknown')"
|
|
|
|
# start.sh handles restart-on-exit-122 without a full container restart
|
|
exec "${ROON_APP_DIR}/RoonServer/start.sh"
|