#!/bin/sh set -eu php_conf_dir="/usr/local/etc/php/conf.d" php_conf_file="${php_conf_dir}/zz-qni-runtime-limits.ini" entrypoint_hooks_dir="/docker-entrypoint-hooks.d" empty_skeleton_dir="${NUQLOUD_EMPTY_SKELETON_DIR:-/var/www/html/data/nuqloud-empty-skeleton}" mkdir -p "${php_conf_dir}" normalize_php_ini_size() { raw_value="$(printf '%s' "${1:-}" | tr -d '[:space:]')" if [ -z "${raw_value}" ]; then printf '%s' "" return 0 fi lower_value="$(printf '%s' "${raw_value}" | tr '[:upper:]' '[:lower:]')" if [ "${lower_value}" = "-1" ]; then printf '%s' "-1" return 0 fi parsed_value="$(printf '%s' "${lower_value}" | sed -nE 's/^([0-9]+)([kmgtp]?)(i?b?)?$/\1|\2/p')" if [ -n "${parsed_value}" ]; then numeric_part="${parsed_value%%|*}" unit_part="${parsed_value#*|}" case "${unit_part}" in "") printf '%s' "${numeric_part}" return 0 ;; k) printf '%s' "${numeric_part}K" return 0 ;; m) printf '%s' "${numeric_part}M" return 0 ;; g) printf '%s' "${numeric_part}G" return 0 ;; t) printf '%s' "${numeric_part}T" return 0 ;; p) printf '%s' "${numeric_part}P" return 0 ;; esac fi printf '%s' "${raw_value}" } upload_limit="${NEXTCLOUD_PHP_UPLOAD_MAX_FILESIZE:-${PHP_UPLOAD_MAX_FILESIZE:-5G}}" post_limit="${NEXTCLOUD_PHP_POST_MAX_SIZE:-${PHP_POST_MAX_SIZE:-5G}}" memory_limit_value="${NEXTCLOUD_PHP_MEMORY_LIMIT:-${PHP_MEMORY_LIMIT:-}}" upload_limit="$(normalize_php_ini_size "${upload_limit}")" post_limit="$(normalize_php_ini_size "${post_limit}")" memory_limit_value="$(normalize_php_ini_size "${memory_limit_value}")" { echo '; Generated by qni-nextcloud-entrypoint.sh' if [ -n "${upload_limit}" ]; then echo "upload_max_filesize=${upload_limit}" fi if [ -n "${post_limit}" ]; then echo "post_max_size=${post_limit}" fi if [ -n "${memory_limit_value}" ]; then echo "memory_limit=${memory_limit_value}" fi } > "${php_conf_file}" if [ "${NUQLOUD_DISABLE_DEFAULT_SKELETON:-1}" != "0" ]; then mkdir -p \ "${entrypoint_hooks_dir}/pre-installation" \ "${entrypoint_hooks_dir}/before-starting" for hook_file in \ "${entrypoint_hooks_dir}/pre-installation/10-qni-empty-skeleton.sh" \ "${entrypoint_hooks_dir}/before-starting/10-qni-empty-skeleton.sh"; do cat > "${hook_file}" <<'EOF' #!/bin/sh set -eu empty_skeleton_dir="${NUQLOUD_EMPTY_SKELETON_DIR:-/var/www/html/data/nuqloud-empty-skeleton}" config_dir="/var/www/html/config" config_file="${config_dir}/nuqloud-skeleton.config.php" mkdir -p "${empty_skeleton_dir}" "${config_dir}" find "${empty_skeleton_dir}" -mindepth 1 -maxdepth 1 -exec rm -rf {} + chown -R www-data:www-data "${empty_skeleton_dir}" 2>/dev/null || true cat > "${config_file}" < '${empty_skeleton_dir}', ]; PHP chown www-data:www-data "${config_file}" 2>/dev/null || true EOF chmod 0755 "${hook_file}" done fi if [ "$#" -eq 0 ]; then exec /entrypoint.sh apache2-foreground fi exec /entrypoint.sh "$@"