postinst 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #!/bin/bash
  2. set -e
  3. NAME=jellyfin
  4. DEFAULT_FILE=/etc/default/${NAME}
  5. # Source Jellyfin default configuration
  6. if [[ -f $DEFAULT_FILE ]]; then
  7. . $DEFAULT_FILE
  8. fi
  9. # Data directories for program data (cache, db), configs, and logs
  10. PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME}
  11. CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME}
  12. LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME}
  13. case "$1" in
  14. configure)
  15. # create jellyfin group if it does not exist
  16. if [[ -z "$(getent group jellyfin)" ]]; then
  17. addgroup --quiet --system jellyfin > /dev/null 2>&1
  18. fi
  19. # create jellyfin user if it does not exist
  20. if [[ -z "$(getent passwd jellyfin)" ]]; then
  21. adduser --system --ingroup jellyfin --shell /bin/false jellyfin --no-create-home --home ${PROGRAMDATA} \
  22. --gecos "Jellyfin default user" > /dev/null 2>&1
  23. fi
  24. # ensure $PROGRAMDATA has appropriate permissions
  25. if [[ ! -d $PROGRAMDATA ]]; then
  26. mkdir $PROGRAMDATA
  27. chown -R jellyfin:jellyfin $PROGRAMDATA
  28. fi
  29. # ensure $JELLYFIN_CONFIG_DIRECTORY has appropriate permissions
  30. if [[ -n $JELLYFIN_CONFIG_DIRECTORY && ! -d $JELLYFIN_CONFIG_DIRECTORY ]]; then
  31. mkdir $JELLYFIN_CONFIG_DIRECTORY
  32. chown -R jellyfin:jellyfin $JELLYFIN_CONFIG_DIRECTORY
  33. fi
  34. # ensure $JELLYFIN_LOG_DIRECTORY has appropriate permissions
  35. if [[ -n $JELLYFIN_LOG_DIRECTORY && ! -d $JELLYFIN_LOG_DIRECTORY ]]; then
  36. mkdir $JELLYFIN_LOG_DIRECTORY
  37. chown -R jellyfin:jellyfin $JELLYFIN_LOG_DIRECTORY
  38. fi
  39. chmod +x /usr/lib/jellyfin/restart.sh > /dev/null 2>&1 || true
  40. # Install jellyfin symlink into /usr/bin
  41. ln -sf /usr/lib/jellyfin/bin/jellyfin /usr/bin/jellyfin
  42. ;;
  43. abort-upgrade|abort-remove|abort-deconfigure)
  44. ;;
  45. *)
  46. echo "postinst called with unknown argument \`$1'" >&2
  47. exit 1
  48. ;;
  49. esac
  50. #DEBHELPER
  51. if [[ -x "/usr/bin/deb-systemd-helper" ]]; then
  52. # Manual init script handling
  53. deb-systemd-helper unmask jellyfin.service >/dev/null || true
  54. # was-enabled defaults to true, so new installations run enable.
  55. if deb-systemd-helper --quiet was-enabled jellyfin.service; then
  56. # Enables the unit on first installation, creates new
  57. # symlinks on upgrades if the unit file has changed.
  58. deb-systemd-helper enable jellyfin.service >/dev/null || true
  59. else
  60. # Update the statefile to add new symlinks (if any), which need to be
  61. # cleaned up on purge. Also remove old symlinks.
  62. deb-systemd-helper update-state jellyfin.service >/dev/null || true
  63. fi
  64. fi
  65. # End automatically added section
  66. # Automatically added by dh_installinit
  67. if [[ "$1" == "configure" ]] || [[ "$1" == "abort-upgrade" ]]; then
  68. if [[ -d "/run/systemd/systemd" ]]; then
  69. systemctl --system daemon-reload >/dev/null || true
  70. deb-systemd-invoke start jellyfin >/dev/null || true
  71. elif [[ -x "/etc/init.d/jellyfin" ]] || [[ -e "/etc/init/jellyfin.conf" ]]; then
  72. update-rc.d jellyfin defaults >/dev/null
  73. invoke-rc.d jellyfin start || exit $?
  74. fi
  75. fi
  76. exit 0