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.

39 lines
1.0 KiB

  1. #!/bin/bash
  2. ## Init is run on host
  3. ## For now it is run every time the script is launched, but
  4. ## it should be launched only once after build.
  5. ## Accessible variables are:
  6. ## - SERVICE_NAME Name of current service
  7. ## - DOCKER_BASE_IMAGE Base image from which this service might be built if any
  8. ## - SERVICE_DATASTORE Location on host of the DATASTORE of this service
  9. ## - SERVICE_CONFIGSTORE Location on host of the CONFIGSTORE of this service
  10. . lib/common
  11. set -e
  12. dirs=(
  13. "$SERVICE_DATASTORE/var/lib/etherpad"
  14. )
  15. uid_gid=($(docker_get_uid_gid "$SERVICE_NAME" "etherpad" "etherpad")) || {
  16. err "Could not fetch uid/gid on image of service ${DARKYELLOW}$SERVICE_NAME${NORMAL}."
  17. return 1
  18. }
  19. uid="${uid_gid[0]}"
  20. gid="${uid_gid[1]}"
  21. for dir in "${dirs[@]}"; do
  22. mkdir -p "$dir"
  23. find "$dir" \! -uid "$uid" -print0 | while read-0 f; do
  24. chown -v "$uid" "$f" || return 1
  25. done
  26. find "$dir" \! -gid "$gid" -print0 | while read-0 f; do
  27. chgrp -v "$gid" "$f" || return 1
  28. done
  29. done