Recette pour la création de l'image sabnzbd
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.3 KiB

3 years ago
  1. #!/bin/bash
  2. set -e
  3. #
  4. # Display settings on standard out.
  5. #
  6. USER="sabnzbd"
  7. echo "SABnzbd settings"
  8. echo "================"
  9. echo
  10. echo " User: ${USER}"
  11. echo " UID: ${SABNZBD_UID:=666}"
  12. echo " GID: ${SABNZBD_GID:=666}"
  13. echo
  14. echo " Config: ${CONFIG:=/datadir/config.ini}"
  15. echo
  16. #
  17. # Change UID / GID of SABnzbd user.
  18. #
  19. printf "Updating UID / GID... "
  20. [[ $(id -u ${USER}) == ${SABNZBD_UID} ]] || usermod -o -u ${SABNZBD_UID} ${USER}
  21. [[ $(id -g ${USER}) == ${SABNZBD_GID} ]] || groupmod -o -g ${SABNZBD_GID} ${USER}
  22. echo "[DONE]"
  23. #
  24. # Set directory permissions.
  25. #
  26. printf "Set permissions... "
  27. touch ${CONFIG}
  28. chown -R ${USER}: /sabnzbd
  29. function check_dir {
  30. [ "$(stat -c '%u %g' $1)" == "${SABNZBD_UID} ${SABNZBD_GID}" ] || chown ${USER}: $1
  31. }
  32. check_dir /datadir
  33. check_dir /media
  34. check_dir $(dirname ${CONFIG})
  35. echo "[DONE]"
  36. #
  37. # Because SABnzbd runs in a container we've to make sure we've a proper
  38. # listener on 0.0.0.0. We also have to deal with the port which by default is
  39. # 8080 but can be changed by the user.
  40. #
  41. printf "Get listener port... "
  42. PORT=$(sed -n '/^port *=/{s/port *= *//p;q}' ${CONFIG})
  43. LISTENER="-s 0.0.0.0:${PORT:=8080}"
  44. echo "[${PORT}]"
  45. #
  46. # Finally, start SABnzbd.
  47. #
  48. echo "Starting SABnzbd..."
  49. exec su -pc "./SABnzbd.py -b 0 -f ${CONFIG} ${LISTENER}" ${USER}