177c4835a5
1. Add log and config flags to init and config 2. Move the existing logs and config dirs to the right places 3. Some cleanups in the control scripts 4. Prune the changelog of pre-Jellyfin entries
87 lines
2.9 KiB
Bash
87 lines
2.9 KiB
Bash
#!/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}
|
|
|
|
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 has appropriate permissions
|
|
if [[ ! -d $PROGRAMDATA ]]; then
|
|
mkdir $PROGRAMDATA
|
|
chown -R jellyfin:jellyfin $PROGRAMDATA
|
|
fi
|
|
# ensure $JELLYFIN_CONFIG_DIRECTORY has appropriate permissions
|
|
if [[ -n $JELLYFIN_CONFIG_DIRECTORY && ! -d $JELLYFIN_CONFIG_DIRECTORY ]]; then
|
|
mkdir $JELLYFIN_CONFIG_DIRECTORY
|
|
chown -R jellyfin:jellyfin $JELLYFIN_CONFIG_DIRECTORY
|
|
fi
|
|
# ensure $JELLYFIN_LOG_DIRECTORY has appropriate permissions
|
|
if [[ -n $JELLYFIN_LOG_DIRECTORY && ! -d $JELLYFIN_LOG_DIRECTORY ]]; then
|
|
mkdir $JELLYFIN_LOG_DIRECTORY
|
|
chown -R jellyfin:jellyfin $JELLYFIN_LOG_DIRECTORY
|
|
fi
|
|
|
|
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
|