|
@@ -0,0 +1,92 @@
|
|
|
+#!/bin/bash
|
|
|
+set -e
|
|
|
+
|
|
|
+NAME=jellyfin
|
|
|
+DEFAULT_FILE=/etc/default/${NAME}
|
|
|
+
|
|
|
+# Source Jellyfin default configuration
|
|
|
+if [[ -f $DEFAULT_FILE ]]; then
|
|
|
+ . $DEFAULT_FILE
|
|
|
+fi
|
|
|
+
|
|
|
+# Data directories for program data (cache, db), configs, and logs
|
|
|
+PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME}
|
|
|
+CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME}
|
|
|
+LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME}
|
|
|
+CACHEDATA=${JELLYFIN_CACHE_DIRECTORY-/var/cache/$NAME}
|
|
|
+
|
|
|
+case "$1" in
|
|
|
+ configure)
|
|
|
+ # create jellyfin group if it does not exist
|
|
|
+ if [[ -z "$(getent group jellyfin)" ]]; then
|
|
|
+ addgroup --quiet --system jellyfin > /dev/null 2>&1
|
|
|
+ fi
|
|
|
+ # create jellyfin user if it does not exist
|
|
|
+ if [[ -z "$(getent passwd jellyfin)" ]]; then
|
|
|
+ adduser --system --ingroup jellyfin --shell /bin/false jellyfin --no-create-home --home ${PROGRAMDATA} \
|
|
|
+ --gecos "Jellyfin default user" > /dev/null 2>&1
|
|
|
+ fi
|
|
|
+ # ensure $PROGRAMDATA exists
|
|
|
+ if [[ ! -d $PROGRAMDATA ]]; then
|
|
|
+ mkdir $PROGRAMDATA
|
|
|
+ fi
|
|
|
+ # ensure $CONFIGDATA exists
|
|
|
+ if [[ ! -d $CONFIGDATA ]]; then
|
|
|
+ mkdir $CONFIGDATA
|
|
|
+ fi
|
|
|
+ # ensure $LOGDATA exists
|
|
|
+ if [[ ! -d $LOGDATA ]]; then
|
|
|
+ mkdir $LOGDATA
|
|
|
+ fi
|
|
|
+ # ensure $CACHEDATA exists
|
|
|
+ if [[ ! -d $CACHEDATA ]]; then
|
|
|
+ mkdir $CACHEDATA
|
|
|
+ fi
|
|
|
+ # Ensure permissions are correct on all config directories
|
|
|
+ chown -R jellyfin $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA
|
|
|
+ chgrp adm $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA
|
|
|
+ chmod 0750 $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA
|
|
|
+
|
|
|
+ chmod +x /usr/lib/jellyfin/restart.sh > /dev/null 2>&1 || true
|
|
|
+
|
|
|
+ # Install jellyfin symlink into /usr/bin
|
|
|
+ ln -sf /usr/lib/jellyfin/bin/jellyfin /usr/bin/jellyfin
|
|
|
+
|
|
|
+ ;;
|
|
|
+ abort-upgrade|abort-remove|abort-deconfigure)
|
|
|
+ ;;
|
|
|
+ *)
|
|
|
+ echo "postinst called with unknown argument \`$1'" >&2
|
|
|
+ exit 1
|
|
|
+ ;;
|
|
|
+esac
|
|
|
+
|
|
|
+#DEBHELPER
|
|
|
+
|
|
|
+if [[ -x "/usr/bin/deb-systemd-helper" ]]; then
|
|
|
+ # Manual init script handling
|
|
|
+ deb-systemd-helper unmask jellyfin.service >/dev/null || true
|
|
|
+ # was-enabled defaults to true, so new installations run enable.
|
|
|
+ if deb-systemd-helper --quiet was-enabled jellyfin.service; then
|
|
|
+ # Enables the unit on first installation, creates new
|
|
|
+ # symlinks on upgrades if the unit file has changed.
|
|
|
+ deb-systemd-helper enable jellyfin.service >/dev/null || true
|
|
|
+ else
|
|
|
+ # Update the statefile to add new symlinks (if any), which need to be
|
|
|
+ # cleaned up on purge. Also remove old symlinks.
|
|
|
+ deb-systemd-helper update-state jellyfin.service >/dev/null || true
|
|
|
+ fi
|
|
|
+fi
|
|
|
+
|
|
|
+# End automatically added section
|
|
|
+# Automatically added by dh_installinit
|
|
|
+if [[ "$1" == "configure" ]] || [[ "$1" == "abort-upgrade" ]]; then
|
|
|
+ if [[ -d "/run/systemd/systemd" ]]; then
|
|
|
+ systemctl --system daemon-reload >/dev/null || true
|
|
|
+ deb-systemd-invoke start jellyfin >/dev/null || true
|
|
|
+ elif [[ -x "/etc/init.d/jellyfin" ]] || [[ -e "/etc/init/jellyfin.conf" ]]; then
|
|
|
+ update-rc.d jellyfin defaults >/dev/null
|
|
|
+ invoke-rc.d jellyfin start || exit $?
|
|
|
+ fi
|
|
|
+fi
|
|
|
+exit 0
|