123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- #!/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}
- # In case this system is running systemd, we make systemd reload the unit files
- # to pick up changes.
- if [[ -d /run/systemd/system ]] ; then
- systemctl --system daemon-reload >/dev/null || true
- fi
- case "$1" in
- install|upgrade)
- # try graceful termination;
- if [[ -d /run/systemd/system ]]; then
- deb-systemd-invoke stop ${NAME}.service > /dev/null 2>&1 || true
- elif [ -x "/etc/init.d/${NAME}" ] || [ -e "/etc/init/${NAME}.conf" ]; then
- invoke-rc.d ${NAME} stop > /dev/null 2>&1 || true
- fi
- # try and figure out if jellyfin is running
- PIDFILE=$(find /var/run/ -maxdepth 1 -mindepth 1 -name "jellyfin*.pid" -print -quit)
- [[ -n "$PIDFILE" ]] && [[ -s "$PIDFILE" ]] && JELLYFIN_PID=$(cat ${PIDFILE})
- # if its running, let's stop it
- if [[ -n "$JELLYFIN_PID" ]]; then
- echo "Stopping Jellyfin!"
- # if jellyfin is still running, kill it
- if [[ -n "$(ps -p $JELLYFIN_PID -o pid=)" ]]; then
- CPIDS=$(pgrep -P $JELLYFIN_PID)
- sleep 2 && kill -KILL $CPIDS
- kill -TERM $CPIDS > /dev/null 2>&1
- fi
- sleep 1
- # if it's still running, show error
- if [[ -n "$(ps -p $JELLYFIN_PID -o pid=)" ]]; then
- echo "Could not successfully stop JellyfinServer, please do so before uninstalling."
- exit 1
- else
- [[ -f $PIDFILE ]] && rm $PIDFILE
- fi
- fi
- # Clean up old Emby cruft that can break the user's system
- [[ -f /etc/sudoers.d/emby ]] && rm -f /etc/sudoers.d/emby
- # If we have existing config, log, or cache dirs in /var/lib/jellyfin, move them into the right place
- if [[ -d $PROGRAMDATA/config ]]; then
- mv $PROGRAMDATA/config $CONFIGDATA
- fi
- if [[ -d $PROGRAMDATA/logs ]]; then
- mv $PROGRAMDATA/logs $LOGDATA
- fi
- if [[ -d $PROGRAMDATA/logs ]]; then
- mv $PROGRAMDATA/cache $CACHEDATA
- fi
- ;;
- abort-upgrade)
- ;;
- *)
- echo "preinst called with unknown argument \`$1'" >&2
- exit 1
- ;;
- esac
- #DEBHELPER#
- exit 0
|