40 lines
798 B
Bash
40 lines
798 B
Bash
#!/usr/bin/env sh
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
|
|
start() {
|
|
jellyfin \
|
|
-w /var/www/jellyfin \
|
|
-c /etc/jellyfin \
|
|
-d /var/lib/jellyfin \
|
|
-l /var/log/jellyfin \
|
|
-C /tmp/jellyfin \
|
|
"$@" &
|
|
|
|
PID=$!
|
|
}
|
|
|
|
start "$@"
|
|
|
|
JELLYFIN_HOST="${JELLYFIN_HOST:-http://localhost:8096}"
|
|
JELLYFIN_ADMIN_USERNAME="${JELLYFIN_ADMIN_USERNAME:-admin}"
|
|
|
|
until setup="$(curl -sf --retry 10 --retry-connrefused "$JELLYFIN_HOST/System/Info/Public" | jq -r '.StartupWizardCompleted' 2>/dev/null)"; do
|
|
echo "Waiting for Jellyfin to be ready..."
|
|
sleep 1
|
|
done
|
|
|
|
if [ "$setup" = "false" ] && [ -f /etc/jellyfin/setup.sh ]; then
|
|
# shellcheck disable=SC1091
|
|
. /etc/jellyfin/setup.sh
|
|
|
|
kill "$PID"
|
|
wait "$PID" 2>/dev/null || true
|
|
start "$@"
|
|
fi
|
|
|
|
trap 'kill -INT "$PID"' INT TERM
|
|
wait "$PID"
|
|
exit $?
|