#!/usr/bin/env bash
set -eo pipefail
[[ $DOKKU_TRACE ]] && set -x

main() {
  declare desc="chowns a storage directory"
  declare DIRECTORY="$1" CHOWN_ID="$2"

  if [[ -z "$DIRECTORY" ]]; then
    echo " !     Please specify a directory to create" 1>&2
    exit 1
  fi

  if [[ ! "$DIRECTORY" =~ ^[A-Za-z0-9\\_-]+$ ]]; then
    echo " !     Directory can only contain the following set of characters: [A-Za-z0-9_-]" 1>&2
    exit 1
  fi

  case "$CHOWN_ID" in
    0 | 1000 | 2000 | 32767 | 165536 | 166536 | 167536 | 198303) ;;
    *)
      echo " !     Unsupported chown permissions. Supported values: 0, 1000, 2000, 32767 (and user namespace offset variants)" 1>&2
      exit 1
      ;;
  esac

  chown -R "$CHOWN_ID:$CHOWN_ID" "${DOKKU_LIB_ROOT}/data/storage/$DIRECTORY"
}

main "$@"
