#!/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 "$@"